《C语言程序考试试题试卷5.pdf》由会员分享,可在线阅读,更多相关《C语言程序考试试题试卷5.pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1C 语言程序设计模拟试卷语言程序设计模拟试卷 (考试时间 120 分钟)一、填空题。(每题一、填空题。(每题 2 分,共分,共 20 分)分)1.C 语句必须以 号结束 2.若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是 。3.若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3 中的值是 。4.设有定义:int n,*k=&n;以下语句将利用指针变量 k 读写变量 n 中的内容,请将语句补充完整。scanf(“%d,”);printf(“%dn”,。);5.若 a 为 int 类型,且其值为 3,则执行完表达式
2、 a+=a-=a*a 后,a 的值是 。6.有以下程序段 int k=0;while(k=1)k+;while 循环执行的次数是 。7.表达式 a=1,a+1,a+的值是_。8.设 char string=This_is_a_book!;则数组的长度应是_。9.设 int a23=2,3;则数组元素_的值为 3。10.设有如下变量说明语句 int a8=44,55,12,42,94,18,6,67,*p=a;则通过指针变量 p 引用值为 18 的表达式是_ _。11.执行下述程序#include int strlength(char a,char b)2 int num=0,n=0;while
3、(*(a+num)!=0)num+;while(bn)*(a+num)=bn;num+;n+;return(num);main()char strl81,str281,*p1=str1,*p2=str2;gets(p1);gets(p2);printf(%dn,strlength(p1,p2);若从键盘输入 qwerty abcd 则输出结果是_ _。二、单项选择题。(每题二、单项选择题。(每题 2 分,共分,共 40 分)分)1下列叙述中错误的是()A)计算机不能直接执行用 C 语言编写的源程序 B)C 程序经 C 编译程序编译后,生成后缀为.obj 的文件是一个二进制文件 C)后缀为.ob
4、j 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件 D)后缀为.obj 和.exe 的二进制文件都可以直接运行 2按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是()3A)大写字母 B)连接符 C)数字字符 D)下划线 3以下叙述中错误的是()A)C 语言是一种结构化程序设计语言 B)结构化程序有顺序、分支、循环三种基本结构组成 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法 4对于一个正常运行的 C 程序,以下叙述中正确的是()A)程序的执行总是从 main 函数开始,在 main 函数结束 B)程序的执行总是从程序的第一个
5、函数开始,在 main 函数结束 C)程序的执行总是从 main 函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 5设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1 和 a2 赋数值 10 和 20,为变量 c1 和 c2 赋字符 X 和 Y。以下所示的输入形式中正确的是(注:代表空格字符)()A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车 20Y回车 20Y回车 6若有代数式xxen+(其中 e 仅代表自然对数的底数,不是变量),则以下能够正
6、确表示该代数式的 C 语言表达式是()A)sqrt(abs(nx+ex)B)sqrt(fabs(pow(n,x)+pow(x,e)C)sqrt(fabs(pow(n,x)+exp(x)D)sqrt(fabs(pow(x,n)+exp(x)7设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()A)k+B)k+=1 C)+k D)k+1 8有以下程序,其中%u 表示按无符号整数输出()main()unsigned int x=0 xFFFF;/*x 的初值为十六进制数*/printf(“%un”,x);4 程序运行后的输出结果是 A)-1 B)65535 C)327
7、67 D)0 xFFFF 9设变量 x 和 y 均已正确定义并赋值,以下 if 语句中,在编译时将产生错误信息的是()A)if(x+);B)if(xy&y!=0);C)if(xy)x-D)if(y0&n5);程序运行后的输出结果是()A)235 B)0235 C)02356 D)2356 13有以下程序 mian()5int i,j;for(i=1;i4;i+)for(j=i;j4;j+)printf(“%d*%d=%d”,i,j,i*j);printf(“n”);程序运行后的输出结果是()A)1*1=1 1*2=2 1*3=3 B)1*1=1 1*2=2 1*3=3 2*1=2 2*2=4
8、2*2=4 2*3=6 3*1=3 3*3=9 C)1*1=1 D)1*1=1 1*2=2 2*2=4 2*1=2 2*2=4 1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 14以下合法的字符型常量是()A)”x13”B)”018”C)”65”D)”n”15在 C 语言中,函数返回值的类型最终取决于()A)函数定义时在函数首部所说明的函数类型 B)return 语句中表达式值的类型 C)调用函数时主函数所传递的实参类型 D)函数定义时形参的类型 16已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97,以下不能将变量 c 中大写字母转
9、换为对应小写字母的语句是()A)c=(c-A)%26+a B)c=c+32 C)c=c-A+a D)c=(A+c)%26-a 17有以下函数 int fun(char*s)char*t=s;while(*t+);return(t-s);6该函数的功能是()A)比较两个字符的大小 B)计算 s 所指字符串占用内存字节的个数 C)计算 s 所指字符串的长度 D)将 s 所指字符串复制到字符串 t 中 18设已有定义:float x;则以下对指针变量 p 进行定义且赋初值的语句中正确的是()A)float *p=1024;B)int *p=(float x);C)float p=&x;D)float
10、*P=&x;19有以下程序#include main()int n,*p=NULL;*p=&n;printf(“Input n:”);scanf(“%d”,&p);printf(“output n:”);printf(“%dn”,p);该程序试图通过指针 p 为变量 n 读入数据并输出,但程序有多处错误,以下语句正确的是()A)int n,*p=NULL;B)*p=&n;C)scanf(“%d”,&p)D)printf(“%dn”,p);20以下程序中函数 f 的功能是:当 flag 为 1 时,进行有由小到大排序;当 flag 为 0 时,进行由大到小排序。void f(int b,int
11、n,int flag)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jbj:bibj)t=bi;bi=bj;bj=t;main()int a10=5,4,3,2,1,6,7,8,9,10,i;f(&a2,5,0);f(a,5,1);for(i=0;i10;i+)printf(“%d,”,ai);程序运行后的输出结果是()7A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,三、修改下列程序:(在程序出错的语句下划横线并标号,把修改后的语句
12、下载程序下面三、修改下列程序:(在程序出错的语句下划横线并标号,把修改后的语句下载程序下面的横线上。)(每小题的横线上。)(每小题 5 分,共分,共 10 分)分)1下列给定程序中,函数 fun 的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。#include#include void fun(char s)int i,j;for(i=0,j=0;si!=0;i+)if(si=0&si=9)sj=si;sj=“0”;main()char item80;clrscr();printf(“nEnter a string:”);gets(item);printf(“nnThe
13、 string is:%sn”,item);fun(*item);printf(“nnThe string of changing is:%sn”,item);2下列给定程序中,函数 fun 的功能是:分别铜级字符串中大写字母和小写字母的个数。例如,给字符串 s 输入:AAaaBBb123CCccccd,则应该输出结果:upper=6,lower=8。#include 8#include void fun(char*s,int a,int b)while(*s)if(*s=A&*s=a&*s=z)b+;s+;main()char s100;int upper=0,lower=0;clrscr(
14、);printf(“nPlease a string:”);gets(*s);fun(s,&upper,&lower);printf(“n upper=%d lower=%dn”,upper,lower);四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。(每小题四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。(每小题 5分,共分,共 20 分)分)1.#include void main()int s=1,t=1,a,n;scanf(“%d%d”,&a,&n);for(int i=1;in;i+)t=t*10+1;s=s+t;s*=a;printf(
15、“SUM=%dn”,s);9 输入数据:2,4 输出结果:2.#include void main()int a,b,c,find(int,int,int);scanf(“%d%d%d”,&a,&b,&c);printf(“%dn%d,%d,%dn”,find(a,b,c),a,b,c);int find(int a,int b,int c)int u,s,t;u=(u=(ab)?a:b)c)?u:c;t=(t=(ab)?a:b)c)?t:c;s=a+b+c-u-t;a=u;b=s;c=t;return s;运行时输入:5 7 3,输出结果:3.#include void main()int
16、a5=2,4,6,9,12,b6=2,3,4,6,8,9;for(int i=0;i5;i+)for(int j=0;j6;j+)if(*(a+i)=*(b+j)printf(“%d ”,*(a+i);printf(“n”);输出结果:4.#include#include void main()10 char str1=“*”;for(int i=0;i4;i+)printf(“%sn”,str1);str1i=;str1strlen(str1)-1=0;输出结果:五、按要求编写下列程序。(每题五、按要求编写下列程序。(每题 5 分,共分,共 10 分)分)1编一程序,输出如下三角形图形。2编
17、一程序,将字符串 computer 赋给一个字符数组,然后从第一个字母开始间隔的输出该串,请用指针完成。参考答案 一、填空题 1 分号 2 2.000000 3 0 4 k*k 5-12 6 无数次 7 1 2 1 11 8 15 9 a10 10*(p+5)11 10 二、单项选择题 1-5 DBCAD 6-10 CABCD 11-15 CABDA 16-20 ACDAB 三、程序修改 1.修改后的程序如下:#include#include void fun(char s)int i,j;for(i=0,j=0;si!=0;i+)if(si=0&si=9)sj+=si;sj=0;main()
18、char item80;clrscr();printf(nEnter a string:);gets(item);printf(nnThe string is:%sn,item);fun(item);printf(nnThe string of changing is:%sn,item);2.修改后的程序如下:#include#include void fun(char*s,int*a,int*b)while(*s)if(*s=A&*s=a&*s=z)(*b)+;s+;12main()char s100;int upper=0,lower=0;system(cls);printf(nPleas
19、e a string:);gets(s);fun(s,&upper,&lower);printf(n upper=%d lower=%dn,upper,lower);四、阅读程序 1.SUM=2 2.3 5-7 3 3.2 4 6 9 4.*五、1.#include#include void main()char str1=*;int i;for(i=0;i4;i+)printf(%sn,str1);str1strlen(str1)-1=0;2.#include#include void main()char str=computer;char*s=str;while(*s)!=0)printf(%c,*s);s+;