C语言综合模拟题.docx
- 文档编号:15812302
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:32
- 大小:35.44KB
C语言综合模拟题.docx
《C语言综合模拟题.docx》由会员分享,可在线阅读,更多相关《C语言综合模拟题.docx(32页珍藏版)》请在冰点文库上搜索。
C语言综合模拟题
C语言综合模拟题
(一)
一、选择题
1.在C语言程序中( )
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的嵌套和函数的调用均不可以嵌套
D)函数的嵌套和函数的调用均可以嵌套
2.下面程序段的输出结果是( )
inta=011;
printf(“%d\n”,++a);
A)12 B)11 C)10 D)9
3.若k为整型,则while循环( )
k=2;
while(k==0)
printf("%d",k);
k--;printf("%d",i);
A)0 B)123456789 C)0123456789 D)10
5.以下对二维数组a进行正确初始化的是______
A)inta[2][3]={{1,2},{3,4},{5,6}};
B)inta[][3]={1,2,3,4,5,6};
C)inta[2][]={1,2,3,4,5,6};
D)inta[2][]={{1,2},{3,4}};
6.若有定义:
inta[4][10],则以下选项中对数组元素a[i][j]的错误引用是(此处0<=i<4,0<=j<10)
A)(&a[0][0]+10i+j) B)*(a+i)[j]
C)*(*(a+i)+j) D)*(a[i]+j)
7.以下程序段的输出结果
inta[]={1,2,3,4,5,6},*p;
p=a;*(p+3)+=2;
printf("%d,%d\n",*p,
*(p+3));
A)0,5 B)1,5 C)0,6 D)1,6
8.下面各语句中,能正确进行赋字符串操作的是____
A)chars[5]={'a','b','c','d','e'}
B)char*s;get(s)
C)char*s;s=“ADFA”;
D)chars[5];scanf(“%s”,&s);
9.下列程序段的运行结果
#definep3
#defineS(a)p*a*a
main()
{intar;
ar=S(3+5);
printf("\n%d",ar);}
A)192 B)29 C)27 D)25
10.下面程序段的运行结果
x=y=0;
while(x<15)y++,,x+=++y;
printf("%d,%d",y,x);
A)20,7B)6,12
C)20,8D)8,20
11.有以下说明和语句:
structworker
{intno;
char*name;
}work,*p=&work;则以下引用方式不正确的是_______
A)work.no B)(*p).no C)p->no D)work->no
12.在说明一个联合体变量时,系统分配给它的存储空间是_____
A)该联合体中第一个成员需存储空间
B)该联合体中最后一个成员所需存储空间
C)该联合体中占用最大存储空间的成员所需存储空间
D)该联合体中所有成员所需存储空间的总和
二.填空题
1.设n=10,i=4,则赋值运算n%=i+1执行后n的值是___
2.若intx=1,y=2,z=3;则表达式z+=x>y?
++x,++y的值是_____
3.若a=3,b=4,c=5,则表达式!
(a+b)+c-1&&b+c/2的值是______
4.当a=1,b=2,c=3时,执行以下语句后a=______,b=_________
if(a>c) b=a;a=c;c=b;
5.若所用变量都已正确定义,请填写以下程序段的输出结果_____
s=7;
dos-=2;while(s=0);
printf("s=%d\n",s);
6.定义inta[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是___
7.设a=000101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的二进制数应为_____
8.C语言中的文件类型有______和________两种。
三.程序分析题
1.若输入b,以下程序的运行结果为_________
main()
{chargrade;scanf("%c",&grade);
switch(grade)
{case'A':
printf(">=85");
case'B':
printf(">=75");
case'C':
printf(">=60");
case'D':
printf("<60default:
printf("errror");}}2.程序运行结果是______
main()
{inti=1;
while(i<10)
if(++i%3!
=1)continute;
elseprintf("%d",i);}
3.程序输出结果是_______
#include
sub1(chara,charb)
{charc;c=a;a=b;b=c;}
sub2(chara,charb)
{charc;c=a;*a=b;b=c;}
sub3(chara,charb)
{charc;c=*a;*a=*b;*b=c;}
main()
{chara,b;
a='A';b='B';sub1(a,b);putchar(a);putchar(b);
a='A';b='B';sub2(&a,b);putchar(a);putchar(b);
a='A';b='B';sub1(&a,&b);putchar(a);putchar(b);
}
4.程序输出结果是_______
intfact(intn)
{staticintf=1;
f=f*n;
return(f);}
main()
{inti;
for(i=1;i<=5;i++)printf("%d1=%d\n",i,fact(i));}
5.程序输出结果是_______
#definen5
main()
{inta[N]={1,3,5,7,9},i,temp;
for(i=0;i {temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;} printf("\n"); for(i=0;i 四.程序填空题 1.完善程序,将输入字符的大写转换成小写后显示出来 #include main() {intc; c=getchar9); if(_________)______________; putchar(c);} 2.下面程序的功能是调用max()函数,求两个数中较大者,请填空 max(x,y) intx,y; {intz;if(x>y)z=x;elsez=y;returnz;} Main{ inta=8,b=12,c; p=max;c=______; printf("%d",c);} 3.以下程序实现将三个数中的大数输出在前,小数输出在后,请填空。 #include swap(int*p1,int*p2) {int*t; __________; t=p1;*p1=*p2;*p2=*t;} chang(int*q1,int*q2int*q3) {if(*q1>*q2)swap(q1,q2); if(*q1>*q3)swap(q1,q3); if(*q2>*q3)swap(q2,q3);} main() {inta=6,b=4,c=2; chang(_____________); printf("%d,%d,%d\n",a,b,c): } 4.以下程序的功能是输出字符串。 main() {char*a[]={"pasecal","Clanguage","dbase","Cobol"} char______________; intj=0; p=a; for(;j<4;j++) printf("%s\n",*___);}5.下面程序有终端键盘输入字符,存放到文件中,用#结束输入。 请填空 #inckude main() {FILE*fp;charch,fname[10]; gets(fname); if((fp=fopen(fname,"w"))==NULL) {printf("enterdata: \n"); while(_____! ='#') fputc(____________); fclose(fp); } 五.编程题(共2题) 1.判断输入的数是否为素数,是则输入yes,否则输出no,要求用函数调用完成。 2.编写程序。 用键盘输入10名学生的成绩,显示其中的最低分,最高分及平均成绩,要求利用指针 一、填空 1.执行a=10>8*2? 3+5: 3*2;后,a的值是 2.设inti=10;则执行j=++i;后j的值为 3.(! x)==(x! =0)的值为 4.能表示一个整数即是奇数又是3的倍数的表达式是 5.定义一指向整型数据的指针变量p的语句是 6.C语言中三种常用的循环控制结构是循环、do---while循环和循环。 7.inta[9];则a数组的下标范围是 8.对应scanf("a=%d,b=%d",&a,&b);语句的输入a为3,b为7的键盘输入格式是 二、选择 1.C语言中,要求运算数必须是整型的运算符是() (A)%(B)/(C)<(D)! 2.表达式10! =9的值是() (A)0(B)1 (C)true(D)false 3.连接两个字符串的C语言库函数是() (A)strcmp(B)strcpy (C)strcat(D)strlen 4.以下定义整型3行4列的二维数组a并初始化不正确的是() (A)inta[3][4]={0}; (B)inta[][4]={0,1,2,3,4,5,6,7,8,9,10,11,12}; (C)inta[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12}; (D)inta[3][4]={{1,2},{1,2,3},{1,2,3,4}}; 5.有如下程序,该程序的执行结果是() main() {inti,sum=0; for(i=1;i<=3;i++) sum+=i++; printf("%d\n",sum);} (A)6(B)3(C)死循环(D)4 6.有如下程序,该程序的输出的结果是() intaddc(inta,intb,intc) {c=a+b; return(c);} main() {intx=4,y=2,z,r; z=x+y; r=addc(addc(x,y,z),addc(y,z,x),z); printf("%d\n",r);} (A)36(B)12(C)14(D)6 7.有如下程序,该程序的输出结果是() longfib(intn) {if(n>2)return(fib(n-1)+fib(n-2)); else if(n==2)return (2); elsereturn (1);} main() {printf("%d\n",fib(4));} (A)3(B)4(C)5(D)6 8.以下程序的输出结果是() main() {inta; for(a=1;a<=100;a++) if(a%3==0) a+=3; printf("%d\n",a);} A)100(B)101(C)102(D)103 9.以下程序的输出结果是() voidfun(int*a,intb) {*a=2;b=5;} main() {inta=3,b=7; fun(&a,b); printf("%d%d\n",a,b);} A)25(B)37(C)35(D)27 10.以下程序的输出结果() #defineMAX(x,y,z)x*(y)+z main() {inta=1,b=2,c=3; printf("%d\n",MAX(a+b,b+c,c+a));} A)12(B)15(C)19(D)22 11.以下程序输出结果是() main() {inti=5,j=0; do {j=j+(--i);} while(i<2); printf("%d\n",j);} (A)4(B)5(C)6(D)9 12.以下程序输出结果是() intf(intb[],intm,intn) {inti,s=1; for(i=m;i {b[i]=b[i-2]+b[i+2]; s+=b[i];} returns;} main() {intx,a[]={1,2,3,4,5,6,7,8,9,10}; x=f(a,4,7); printf("%d\n",x);} A)22(B)26(C)42(D)64 13.以下程序输出结果是() intfunc(intn) {staticintm=0; m=m+n; return(m);} main() {inti,a=0; for(i=1;i<=4;i++) a+=func(i); printf("%d\n",a);} A)10(B)15(C)20(D)22 14.下列程序输出结果是() structstudent {inta,b,c;}; main() {structstudentstu[2]={{1,2,3},{4,5,6}};intt; t=stu[0].a+stu[1].b%stu[0].c; printf("%d\n",t);} (A)0(B)1(C)3(D)5 15.以下程序输出结果是() main() {inta=0,i; for(i=0;i<5;i++) {switch(i) {case0: case3: a+=2; case1: case2: a+=3;break; default: a+=5;}} printf("%d\n",a);} A)10(B)15(C)21(D)36 三、程序填空 1.下面程序的功能是: 输出100以内能被3整除且个位数为6的所有整数,请填空。 main() {inti,j; for(i=0;i<10;i++) {① if(②)continue; printf("%d",j);}} 2.打印出[19002050]之间的所有的闰年,程序如下,请填空: main() {inti; for(i=1900;i<=2050;i++) if(③) printf("%d,",i);} 3.下面程序的功能是将数组中的数据按逆序存放,请填空使程序完整。 #defineN12 main() {intk,j,t,a[N]; for(k=0;k scanf("%d",④); k=0; ⑤ while(k {t=a[k]; ⑥ a[j]=t; k++; ⑦} for(k=0;k printf("%4d",a[k]); printf("\n");} 四、读程序题 1.读程序从键盘输入1080,则程序的输出结果是: intf(intn) {intm=0,c; while(n! =0) {c=n%10; m=m*10+c; n=n/10;} return(m);} main() {intm; scanf("%d",&m); printf("%d\n",f(m));} 2.写当运行程序输入5时程序输出的结果: main() {inti,j,n; scanf("%d",&n); for(i=0;i<=n-1;i++) { for(j=0;j<=n-1;j++) if((i+j>=n/2&&i+j<=n/2+n-1)&&(i-j>=-n/2&&i-j<=n/2)) printf("*"); else printf("");/*注释: 引号内空白处为一个空格*/ printf("\n");}} 3.写出程序的执行结果: #defineM3 #defineN3 main() {inta[M][N]={1,2,3,4,5,6,7,8,9}; inti,j,t; for(i=0;i for(j=i+1;j {t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t;} for(i=0;i {for(j=0;j printf("%d",a[i][j]); printf("\n");}} 4.写出程序的执行结果: voidswap(int*a,int*b) {int*tmp; tmp=a; a=b; b=tmp; *tmp=4;} main() {inta=3,b=5; swap(&a,&b); printf("%d,%d",a,b);} 五、编程序 1.用公式 求∏的近似值,直到最后一项的绝对值小于 为止,请编程实现。 2.编程从键盘输入一个5行5列的二维数组数据,并找出数组中的最大值及其所在的行下标和列下标;最小值及其所在的行下标和列下标。 要求打印格式,例如最大值形式: Max=最大值,row=行标,col=列 C语言综合模拟题 (二) 1、设x为整型变量,值为1,则表达式(x&&1)==(x%2)的值为____ 2、与二进制数101等值的十进制数为______ 3、若已知a=10,b=20,则表达式! a 4、结构化程序设计所规定的三种基本控制结构是___结构___结构和___结构 5、定义inti=1;执行语句while(i++<5);后,i的值为6、定义3行4列的整型二维数组a的语句是________ 7、int*p,a;则语句p=&a;中的运算符&是______符号 8、设y是int型变量,请写出判断y为奇数的关系表达式 二、选择 1、下列优先级最低的是() A&&B&C||D= 2、已知intj,i=1;执行语句“j=i++;”后,变量i的值是() A1B2C–1D-2 3、已知inti,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是() A6B12C30D36 4、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为() Aa<>0B! aCa=0Da 5、以下错误的if语句是() Aif(x>y); Bif(x==y)x+=y; Cif(x! =y)scanf(“%d”,&x)elsescanf(“%d”,&y); Dif(x 6、为了判断两个字符串s1和s2是否相等,应当使用() Aif(s1==s2) Bif(s1=s2) Cif(strcpy(s1,s2)) Dif(strcmp(s1,s2)==0) 7、若有说明intx,y;不能实现以下函数关系的程序段是() y=-1(x<0) y=0(x=0) y=1(x>0) A.if(x<0)y=-1; B.y=-1; elseif(x==0)y=0; if(x! =0) elsey=1; if(x>0)y=1; elsey=0; C.y=0; D.if(x>=0) if(x>=0)if(x>0)y=1; {if(x>0)y=1;}elsey=0; elsey=-1;elsey=-1; 8、以下错误的描述是() Abreak语句不能用于循环语句和switch语句外的任何其他语句 B在switch语句中使用break语句或continue语句的作用相同 C在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环 D在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 9、若inti=10;执行下列程序后,变量i的正确结果是() switch(i) {case0: i+=1; case10: i+=1; case11: i+=1; default: i+=1; }A10B11C12D13 10、下列程序是求1到100的累加和,其中有1个不能够完成规定的功能,是() A.s=0;i=0; while(i<=100)s+=i++; B.s=0;i=1;while(i++<100) s+=i; Cs=0;i=0; while(i<100)s+=++i; D)s=0;i=0;while(++i<=100)s+=i; 11、选择程序输出结果() f(intb[],intm,intn) {inti,s=0; for(i=m;i s+=b[i]; returns; } main() {intx,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A30B15C18D22 12、C语言中函数返回值的类型由()决定的。 Areturn语句中的表达式类型 B调用该函数的主调函数的类型 C调用函数时临时决定 D定义函数时所指定的函数类型 13、选择下列程序的运行结果() fun(int*p) {inta=10; p=&a; ++*p; } main() {inta=5; fun(&a); printf(“%d\n”,a); } A5B6C10D11 14、执行后y的值是() main() {inta[]={1,2,3,4},y,*p=a; y=*p++; } A1B2C3D4 15、下列程序输出结果是() structabc {i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 综合 模拟
![提示](https://static.bingdoc.com/images/bang_tan.gif)