C语言题库汇总(2011.5)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》




信息技术学院
计算机基础教学部
二O一一年五月
(内部资料)
第一章
一、填空共5题(共计5分)
第1题(1.0分)题号:521
结构化程序中,有三种结构:顺序结构,【1】,循环结构.
第2题(1.0分)题号:522
一个用C语言编写的程序在运行时,如果没有发生任何异常情况,则只有在执行了【1】函数
的最后一条语句或该函数中的return语句后,程序才会终止运行.
第3题(1.0分)题号:518
C程序中有且仅有一个【1】函数.
第4题(1.0分)题号:519
C语言程序由【1】组成.
第5题(1.0分)题号:165
程序流程图只有一个起点和【1】个终点.
二、单项选择共4题(共计4分)
第1题(1.0分)题号:20
要调用文件处理函数时,在#include 命令行中应包含( ).
A:"ctype.h" B:"string.h" C:"stdio.h" D:"math.h"
第2题(1.0分)题号:30
在C语言中,错误的语句是( ).A:a=b=c; B:; C:break D:b=3*5,a*=4;
第3题(1.0分)题号:206
完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( ).
A:连接、编译 B:编译、连接 C:连接、运行 D:运行
第4题(1.0分)题号:208
C语言程序从main()函数开始执行,所以这个函数要写在( ).
A:程序文件的开始 B:程序文件的最后
C:程序文件的任何位置(除别的函数体内) D:它所调用的函数的前面
第二章
一、填空共15题(共计15分)
第1题(1.0分)题号:525
C语言中一个单精度浮点型数据占【1】个字节.
第2题(1.0分)题号:202
在C语言的源程序中若出现常量"1L",则该常量的类型是【1】.
第3题(1.0分)题号:317
在TC中,语句序列int k=-1;printf("%u",k);的输出结果为【1】.
第4题(1.0分)题号:200
C语言中为整型数据(int)分配【1】个字节的存储空间.
第5题(1.0分)题号:316
已知有声明float d=1;double f=1;long g;和语句printf(" ",g=10+'i'+(int)d*f);,为了正确地以十进制形式输出printf参数表中第二个参数(表达式)的值,则在第一个参数中的下划线位置处应填写的格式转换说明符是【1】.
第6题(1.0分)题号:203
在C语言中,字符型数据在内存中以【1】码形式存放.
第7题(1.0分)题号:264
只有在程序运行时才为【1】存储类型和register存储类型变量分配内存.
第8题(1.0分)题号:318
现有语句#define a 5+3,则表达式2*a的结果为【1】.
第9题(1.0分)题号:248
C语言中,逻辑值"真"用【1】表示.
第10题(1.0分)题号:238
执行"printf("%d,%d",i,j,k,m);"后将在屏幕上输出【1】个整数.
第11题(1.0分)题号:201
在Turbo C2.0系统中,若将实型常数1.5存储在内存中,它占用【1】个字节.
第12题(1.0分)题号:523
整型变量x的值为23,语句"printf(″%o\\n″,x);"的输出结果为【1】.
第13题(1.0分)题号:315
从变量的作用域角度分有全局变量和【1】.
第14题(1.0分)题号:176
已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【1】.
第15题(1.0分)题号:533
变量从存储的时间来分可分为【1】和动态变量.
二、单项选择共23题(共计23分)
第1题(1.0分)题号:590
若有宏定义"#define p(x,y,z) x=y*z;",则宏替换"p(a,x+5,y-3.1);"应为语句( )。

A:a=x+5*y-3.1; B:a=(x+5)*(y-3.1); C:a=x+5*y-3.1 D:a=(x+5)*(y-3.1)
第2题(1.0分)题号:216
下列程序的输出是( ).
#include<stdio.h>
main()
{ printf("%d",NULL); }
A:0 B:变量无定义 C:-1 D:1
第3题(1.0分)题号:215
在main函数体内部和外部均允许出现的实体是( ).
A:预处理命令 B:语句 C:另一函数的定义 D:函数形式参数声明
第4题(1.0分)题号:222
下面正确的字符常量是 ( ).
A:"c" B:'\\'' C:'W' D:'ab'
第5题(1.0分)题号:39
若变量都已正确说明,则以下程序段( ).
a=2;b=3;
printf(a>b?"***a=%d":"###b=%d",a,b);
A:没有正确的输出格式控制 B:输出为:***a=2 C:输出为:###b=2 D:输出为: ***a=2###b=3 第6题(1.0分)题号:71
以下所列的C语言常量中,错误的是( ).
A:0Xff B:1.2e0.5 C:2L D:'\72'
第7题(1.0分)题号:211
已知宏定义
#define N 3
#define Y(n) ((N+1)*n)
执行语句z=2*(N+Y(5+1));变量z的值为( ).
A:42 B:48 C:54 D:出错
第8题(1.0分)题号:218
下列选项中,合法的C语言关键字是( ).
A:VAR B:cher C:integer D:default
第9题(1.0分)题号:226
若x,y 均定义为 int 型,z 为 double 型 ,以下不合法的 scanf 函数调用语句是( )。

A:scanf("%d%d,%lf",&x,&y,&z); B:scanf("%x,%d,%lf",&x,&y,&z);
C:scanf("%d,%x,%lf",&x,&y,&z); D:scanf("%d,%d,%x",&x,&y,&z);
第10题(1.0分)题号:152
正确的自定义标识符是( ).
A:if B:a*b C:iF D:8pq
第11题(1.0分)题号:228
在C程序中,1如果用来表示逻辑值时,应代表( ).
A:真 B:假 C:整数1 D:长整型数1
第12题(1.0分)题号:586
以下所列字符常量中,不合法的是( ).
A:'\0xa2' B:'\65' C:'$' D:'\x2a'
第13题(1.0分)题号:221
下列格式符中,可以用于以8进制形式输出整数的是( ).
A:%d B:%8d C:%o D:%1d
第14题(1.0分)题号:165
以下不正确的C语言标识符是( ).
A:2y B:a_1_2 C:ablexe D:_x
第15题(1.0分)题号:193
以下答案中不是C语言最基本数据类型
的是( ).
A:逻辑型 B:整型 C:字符型 D:实型
第16题(1.0分)题号:227
以下四个字符序列中,能用作用户自定
义的标识符是( ).
A:Putchar B:-double C:A123- D:int
第17题(1.0分)题号:234
以下叙述中正确的是( ).
A:输入项可以是一个实型常量,如: scanf("%f",3.5);
B:只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d ,b=%d");
C:当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f",&d); D:当输入数据时,必须指明变量地址,例如: scanf("%f",&f);
第18题(1.0分)题号:220
常数的书写格式决定了常数的类型和值,0x1011是( ).
A:8进制整型常量 B:字符常量 C:16进制整型常数 D:2进制整型常数
使用语句scanf("x=%f,y=%f",&x,&y);输入变量x,y的值([]代表空格),正确的输入是( ). A:1.25,2.4 B:1.25[]2.4 C:x=1.25,y=2.4 D:x=1.25[]y=2.4
第20题(1.0分)题号:77
若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,
b赋予22.0,c赋予33.0,不正确的输入形式是( ).
A:10<回车>22<回车>33<回车> B:10.0,22.0,33.0<回车>
C:10.0<回车>22.0 33.0<回车> D:10 22<回车>33<回车>
第21题(1.0分)题号:587
( )是C语言提供的合法数据类型关键字.
A:Float B:signed C:integer D:Char
第22题(1.0分)题号:232
设有说明语句 char a='\101'; ,则变量a( ).
A:包含4个字符 B:包含2个字符 C:包含3个字符 D:包含1个字符
第23题(1.0分)题号:217
下述程序段的输出结果是( ).
int x=10; int y=x++; printf("%d,%d",(x++,y),y++);
A:11,10 B:11,11 C:10,10 D:10,11
第三章
一、填空共32题(共计32分)
第1题(1.0分)题号:978
若x为int型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式【1】.
第2题(1.0分)题号:989
若有定义:int b=7;float a=2.5,c=4.7; 则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【1】. 第3题(1.0分)题号:334
计算a、b中最小值的条件表达式为【1】.
第4题(1.0分)题号:997
若已知a=10,b=20,则!a<b的值为【1】.
第5题(1.0分)题号:345
若a为int型变量,则下面表达式的值为【1】.(a=4*5,a*2),a+6
第6题(1.0分)题号:985
若a是int型变量,则执行表达式"a=25/3%3"后,a的值为【1】.
第7题(1.0分)题号:337
设int a=5,b=2;float c=32.8;,表达式b*(int)c%a的值为【1】.
第8题(1.0分)题号:348
设y为int型变量,请写出描述"y为奇数"的表达式【1】。

第9题(1.0分)题号:998
设a和b均为int整型变量,且a=5,b=7,则以下表达式的值为【1】.1.0+a/b
第10题(1.0分)题号:1004
当a=1,b=1,c=1时,表达式a<b<c的值是【1】.
第11题(1.0分)题号:988
设a、b、c为整型数,且a=3,b=5,c=2,则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【1】. 第12题(1.0分)题号:342
int a=2,b=3; 表达式 a>b?a++:++b的值为【1】.
以下十个运算符+ ! << != , ?: && = || %中优先级别最高和最低的分别是【1】和【2】.
第14题(1.0分)题号:335
已知:a=1,b=2,表达式a>b?a:b+1的值是【1】.
第15题(1.0分)题号:329
若a=1,b=4,c=3,则表达式a&&b+c||b-c的值为【1】.
第16题(1.0分)题号:347
若x为int型变量,执行以下语句后x值是【1】.x=3;x+=x-=x+x;
第17题(1.0分)题号:325
关系、算术、赋值三种运算符的运算优先顺序由高到低为【1】、【2】、【3】.
第18题(1.0分)题号:1001
表达式 a=3,a++,--a的值为【1】.
第19题(1.0分)题号:326
执行语句"a=5+(c=6);"后,变量a、c的值依次为【1】、【2】。

第20题(1.0分)题号:982
已知char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为【1】. 第21题(1.0分)题号:336
表达式3>2>1的值是【1】.
第22题(1.0分)题号:999
s=3,s++,s; 这个语句执行完后,s的值为【1】.
第23题(1.0分)题号:344
执行语句序列"char x=3,y=6,z;z=x^y<<2;"后,z的二进制值为【1】.
第24题(1.0分)题号:349
设x,y,z均为int 型变量,请写出描述"x或y中有一个小于z"的表达式【1】.
第25题(1.0分)题号:351
表达式 !10! = 1的值是【1】.
第26题(1.0分)题号:328
若有定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式(float)(a+b)/2+(int)x%(int)y的
值为【1】.
第27题(1.0分)题号:991
C语言中的表达式只能由三种字符组成,他们是字母、数字和【1】.
第28题(1.0分)题号:980
设有程序段 int x= 4,y=4;t=++x||++y; 执行语句后y的值为【1】.
第29题(1.0分)题号:996
条件"20<x<30或x<-100"的C语言表达式是【1】.
第30题(1.0分)题号:981
如果a=1,b=2,c=3,d=4,则表达式a>b?c:d的值为【1】.
第31题(1.0分)题号:319
判断变量a、b的值均不为0的C表达式为【1】.
第32题(1.0分)题号:1008
设有下面的程序段 int x= 0,y=0,t;t=x&&++y; 执行语句后y的值为【1】.
二、单项选择共26题(共计26分)
下面程序的输出是( ).
main()
{ int x=10,y=3; printf("%d\n",x/y);}
A:0 B:1 C:3 D:不确定的值
第2题(1.0分)题号:375
下列关于C语言的叙述,错误的是( ).
A:大写字母和小写字母的意义相同 B:不同类型的变量可以在一个表达式中
C:在赋值表达式中等号(=)左边的变量和右边的值可以是不同的类型
D:同一个运算符号在不同的场合可以有不同的含义
第3题(1.0分)题号:246
若x、i、j和k都是int型变量,由x=(i=4,j=16,k=32)得x的值( ).
A:4 B:16 C:32 D:52
第4题(1.0分)题号:596
设有说明"int x=3,y=4;",则"++x>y--?x:y"的值为( ).
A:4 B:1 C:2 D:3
第5题(1.0分)题号:609
执行语句"k=5|3;"后,变量k的当前值是( ).
A:1 B:8 C:7 D:2
第6题(1.0分)题号:257
设 int x=1, y=1; 表达式(!x||y--)的值是( ).
A:0 B:1 C:2 D:-1
第7题(1.0分)题号:326
已知int i=10;执行表达式"i||(i=12)"后i的值是( ).
A:10 B:1 C:12 D:0
第8题(1.0分)题号:240
设有说明"int x=1,y=1,z=1,c;",执行语句"c=--x&&--y||--z;"后,x、y、z的值分别为( ). A:0、1、1 B:0、0、1 C:1、0、1 D:0、1、0
第9题(1.0分)题号:617
已知int a =15;
执行语句a<<2;以后,
变量a的值是( ).
A:20 B:40 C:60 D:80
第10题(1.0分)题号:593
以下程序的输出结果是( ).
main()
{ int x=0.5; char z='a';
printf("%d\n", (x&1)&&(z<'z') ); }
A:0 B:1 C:2 D:3
第11题(1.0分)题号:615
逗号表达式" (a=3*5,a*4),a+15 "的值是( ).
A:15 B:60 C:30 D:不确定
第12题(1.0分)题号:235
若a为int类型,且其值为3,则执行
完表达式a+=a-=a*a后,a的值是( ).
A:-3 B:9 C:-12 D:6
第13题(1.0分)题号:255
设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( ).
A:不定值 B:4 C:3 D:1
第14题(1.0分)题号:620
C语句"x/=y-2;"还可以写作( ).
A:x=x/y-2; B:x=2-y/x; C:x=x/(y-2); D:x=y-2/x;
第15题(1.0分)题号:247
将字符g赋给字符变量c,正确的表达式是( ).
A:c=\147 B:c="\147" C:c='\147' D:c='0147'
第16题(1.0分)题号:237
若w=1,x=2,y=3,z=4,条件表达式w<x?w:y<z?y:z的值为( ).
A:4 B:3 C:2 D:1
第17题(1.0分)题号:242
以下程序段输出结果是( ).
int a=11,b=12,c=13,s;
s=a++<=10&&b--<=2&&c++;
printf("%d,%d,%d,%d",s,a,b,c);
A:0,12,12,13 B:1,11,10,13 C:0,11,10,12 D:1,11,10,12
第18题(1.0分)题号:610
数学式2≤x≤5在C程序中对应正确的表达式为( ).
A:(x>=2) 且 (x<=5) B:(x>=2) AND (x<=5) C:(x>=2)&&(x<=5) D:(2≤x) AND (x≤5)
第19题(1.0分)题号:605
若有以下定义: char a; int b; float c; double d;则表达式a*b+d-c结果值的类型为( ). A:float B:int C:char D:double
第20题(1.0分)题号:600
已知有声明int x=2;,以下表达式中值不等于8的是( ).
A:x+=2,x*2 B:x+=x*=x C:(x+7)/2*((x+1)%2+1) D:x*7.2/x+1
第21题(1.0分)题号:595
设ch是char型变量,其值为A,且有下面的表达式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch上面表达式的值是( ).
A:A B:a C:Z D:z
第22题(1.0分)题号:613设int a=3,b=4;执行printf("%d,%d",(a,b),(b,a));后
的输出结果是( ).
A:3,4 B:4,3 C:3,3 D:4,4
第23题(1.0分)题号:608
在C语言中,要求运算数必须是整型的运算符是( ).
A:% B:/ C:+ D:!
第24题(1.0分)题号:621
设有如下的变量定义: int i =10 ,a,b ; double x=4.12,y=8.2;则以下符合C语言语法的表达式是( ).
A:a+=a-=(b=4)*(a=3) B:x%(-3.0); C:a=a*3=2 D:y=float(i)
第25题(1.0分)题号:241
设有定义"float y=3.45678;int x;",则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达式是( ).
A:y=(y*100+0.5)/100.0 B:y=(y/100+0.5)*100.0
C:y=y*100+0.5/100.0 D:x=y*100+0.5,y=x/100.0
第26题(1.0分)题号:618
表达式sizeof(double)的值是( ).
A:16 B:2 C:4 D:8
第四章
一、填空共19题(共计19分)
第1题(1.0分)题号:366
以下程序运行后的输出结果是【1】 .
main()
{ int a=1, b=3; if (a+b) printf("yes\n"); else printf("no\n"); }
第2题(1.0分)题号:370
以下程序输出的结果是【1】 .
main()
{ int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); }
第3题(1.0分)题号:356
下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空.
main()
{int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if【1】{ y=0; break;}
printf("%d\n", y);
}
第4题(1.0分)题号:368
以下程序运行后的输出结果是【1】 .
main()
{ int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; printf("%d,%d \n",x,y); }
第5题(1.0分)题号:355
在下述程序中,判断i>j共执行的次数是【1】
main()
{int i=0, j=10, k=2, s=0;
for (;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
第6题(1.0分)题号:369
若从键盘输入58,则以下程序输出的结果是【1】。

main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d",a);
if(a>40) printf("%d",a);
if(a>30) printf("%d",a);
}
第7题(1.0分)题号:371
有如下程序
main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
该程序的输出结果是【1】.
第8题(1.0分)题号:360
假定所有变量均已正确说明,下列程序段运行后x的值是【1】a=b=c=0;x=35;
if(!a)x--;
else if(b);
if(c)x=3;
else x=4;
第9题(1.0分)题号:357
有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);}
执行后输出结果是【1】。

第10题(1.0分)题号:358
阅读以下程序:
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d"'x);
else printf("%d",x++);
}
程序运行后,如果从键盘上输人5,则输出结果是【1】
执行语句"n=1; if(n=5) n++;"后,变量n值为【1】. 第12题(1.0分)题号:363
以下程序运行后的输出结果是【1】
main()
{ int a,b,c
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d %d %d\n",a,b,c); }
第13题(1.0分)题号:362
以下程序运行后的输出结果是【1】 .
main()
{ int a=1,b=2,c=3;
if(c=a) printf("%d\n",c);
else printf("%d\n",b); }
第14题(1.0分)题号:367
若有以下程序
main()
{ int p,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2); }
执行后输出结果是【1】。

第15题(1.0分)题号:359
以下程序输出结果是【1】
main()
{ int m=5;
if(m++>5) printf("%d\n",m);
esle printf("%d\n",- -m);
}
第16题(1.0分)题号:365
以下程序运行后的输出结果是【1】 .
main()
{ int p=30;
printf ("%d\n",(p/3>0 ? p/10 : p%3)); }
第17题(1.0分)题号:1029
有如下程序
main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%.2f\n",y);}
该程序的输出结果是【1】.
有以下程序
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x); }
执行后输出结果是【1】
第19题(1.0分)题号:354
若执行以下程序时从键盘上输入9,则输出结果是【1】
main()
{ int n;
scanf("%d",&n);
if(n++<10)printf("%d",n);
else printf("%d",n--); }
二、单项选择共18题(共计18分)
第1题(1.0分)题号:378
下列________结构不是C程序的结构?
A:顺序结构 B:循环结构 C:程序结构 D:选择结构
第2题(1.0分)题号:385
以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是() A:if((a>b)&&(b>c)) k=1; B:if((a>b)||(b>c)) k=1;
else k=0; else k=0;
C:if(a<=b) k=0; D:if(a>b) k=1;
else if(b<=c) k=1; else if(b>c) k=1;
else k=0;
第3题(1.0分)题号:397
若k是int型变量,且有下面的程序片段:
k=-3;
if(k<=0) printf("####")
else printf("&&&&");
上面程序片段的输出结果是()
A:#### B:&&&& C:####&&&& D:有语法错误,无输出结果第4题(1.0分)题号:623
C语言的if语句中用作判断的表达式为________.
A:关系表达式 B:逻辑表达式 C:算术表达式 D:任意表达式第5题(1.0分)题号:638
下列条件语句中,功能与其他语句不同的是 ()
A:if(a) printf("%d\n",x); else printf("%d\n",y);
B:if(a==0) printf("%d\n",y); else printf("%d\n",x); C:if (a!=0) printf("%d\n",x); else printf("%d\n",y); D:if(a==0) printf("%d\n",x); else printf("%d\n",y); 第6题(1.0分)题号:381
若执行下面的程序时,从键盘上输入3和4,
则输出结果是________.
main()
{int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a>b) s=b;s=s*s;
printf("%d\n",s);}
A:9 B:16 C:3 D:4
第7题(1.0分)题号:639
有以下程序
#include
main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b); }
输出结果是 ()
A:2,1 B:3,2 C:4,3 D:2,-1
第8题(1.0分)题号:392
有以下程序
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k); }
程序运行后的输出结果是 ()
A:1 2 3 B:2 3 4 C:2 2 3 D:2 3 3
第9题(1.0分)题号:628
与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是 ()
A:if(a>b){if(c>d) x = 1;else x = 2;} B:if(a>b){if(c>d) x = 1;} else x = 2; C:if((a>b) && (c>d)) x = 1;else x = 2; D:if(a< =b) x = 2;else if (c>d) x = 1;
第10题(1.0分)题号:383
下列程序段中,能将变量x、y中值较大的数保存到变量a,值较小的数保存到变量b的程序段是______.
A:if(x>y) a=x;b=y;else a=y;b=x;
B:if(x>y){a=x;b=y;} else a=y;b=x;
C:if(x>y){a=x;b=y;} else {a=y;b=x;}
D:if(x>y){a=x;b=y;} else (x<y){a=y;b=x;}
第11题(1.0分)题号:388
设有定义int a=1,b=2,c=3; 以下语句中执行效果与其他三个不同的是
A:if(a>b) c=a,a=b,b=c; B:if(a>b) {c=a,a=b,b=c;}
C:if(a>b) c=a;a=b;b=c; D:if(a>b) {c=a;a=b;b=c;}
第12题(1.0分)题号:635
有以下程序
{ int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b); }
程序运行后的输出结果是()
A:6,1 B:2,1 C:6,0 D:2,0
第13题(1.0分)题号:393
有以下程序
main()
{ int a=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d++ +1);
else
printf("%d",++d +1);
printf("%d\n",d); }
程序运行后的输出结果是 ()
A:2 B:3 C:43 D:44
第14题(1.0分)题号:386
有如下程序
main()
{int a=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
else c++;
printf(″%d\n″,c);}
该程序的输出结果是( )
A:0 B:1 C:2 D:3
第15题(1.0分)题号:382
下面程序执行时,若从键盘输入5,则输出为( ).
main()
{ int a;
scanf("%d",&a);
if(a++>5) printf("%d\n",a);
else printf("%d\n",--a);}
A:6 B:7 C:5 D:4
第16题(1.0分)题号:384与第9题重复(已删除)
第17题(1.0分)题号:380
下列程序段执行后输出结果为( )
int i=-1;if(i<=0)printf("****\n"); else printf("%%%%\n"); A:****C B:%%%% C:%%%%C D:****
第18题(1.0分)题号:396
以下程序的输出结果是 ()
{ int a=-1,b=4,k;
k=(+ +a〈0)&&!(b - -〈=0);
printf("%d%d%d\n",k,a,b); }
A:104 B:103 C:003 D:004
第五章
一、填空共18题(共计18分)
第1题(1.0分)题号:1037
有以下程序
#include <stdio.h>
main()
{int c=0,k;
for(k=1;k<3;k++)
switch(k)
{default:c+=k;
case 2:c++;break;
case 4:c+=2;break;}
printf("%d\n",c);}
程序运行后的输出结果是【1】.
第2题(1.0分)题号:1041
下面程序段的执行结果是【1】.
int x=3;
do
{printf("%d",x--);
}while (!x);
第3题(1.0分)题号:374
break语句除了可以用于循环语句的循环体中,还可以用于【1】语句中.
第4题(1.0分)题号:378
设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为【1】.
第5题(1.0分)题号:377
执行语句段for(s=0,i=1;i<11;i++) {if(i==6) continue; s+=i; }后,s值为【1】. 第6题(1.0分)题号:1030
【1】语句,只能用在循环中,以中断某次循环,继续下一次循环.
第7题(1.0分)题号:373
只能在循环体中使用的语句是【1】.
第8题(1.0分)题号:384
有以下程序
#include <stdio.h>
main()
{int n=2,k=0;
while (k++&&n++>2);
printf("%d%d\n",k,n);}
程序运行后的输出结果是【1】.
第9题(1.0分)题号:1034
执行语句"s=0;n=5; while(--n) s+=n;"后,变量s 的值为【1】.
第10题(1.0分)题号:380
有如下程序
main()
{int a=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
else c++;
printf(″%d\n″,c);}
该程序的输出结果是【1】.
第11题(1.0分)题号:375
执行语句"for(s=0,i=1;i<=10;i=i+3) s+=i;"后,变量s、i的当前值是【1】和【2】. 第12题(1.0分)题号:1043
以下程序的输出结果是【1】.
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2) continue; x++; }
x++;
}
printf("x=%d",x);
}
第13题(1.0分)题号:386
以下程序的输出结果是【1】.
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d",a);
}
第14题(1.0分)题号:387
有如下程序
main()
{ int n=9;while(n>6){n--;printf("%d",n);}}
该程序的输出结果是【1】.
第15题(1.0分)题号:388
下面程序的运行结果是【1】.
#include <stdio.h>
main()
{ int a=1,b=10;
do
{ b-=a;a++;
}while(b--<0);
printf("a=%d,b=%d″,a,b);}
第16题(1.0分)题号:382
有如下程序
main()
{intx=l,a=0,b=0;
switch(x){
case 0:b++;
case 1:a++;
case 2:a++;b++;}
printf("a=%d,b=%d\n",a,b);)
该程序的输出结果是【1】.
第17题(1.0分)题号:1047
有如下程序
main()
{ int x=23;
do
{ printf("%d″,x--);}
while(!x);}
该程序的执行结果是【1】.
第18题(1.0分)题号:381
若int k=8;则执行下列程序后,变量k的正确结果是【1】. main()
{ int k=8;
switch(k)
{ case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1; }
printf(″%d\n″,k);}
二、单项选择共37题(共计37分)
第1题(1.0分)题号:424
有以下程序段
int n=0,p;
do
{scanf("%d",&p);n++;}
while(p!=12345&&n<3);
此处do-while循环的结束条件是( ).
A:p的值不等于12345并且n的值小于3 B:p的值等于12345并且n的值大于等于3
C:p的值不等于12345或者n的值小于3 D:p的值等于12345或者n的值大于等于3
第2题(1.0分)题号:1613
如果程序中想跳出循环体继续往下执行,则执行( )语句.
A:break B:continue C:switch D:return
第3题(1.0分)题号:1644
下面有关for循环的正确描述是( )
A:for循环只能用于循环次数已经确定的情况 B:for循环是先执行循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体
D:for循环的循环体语句中,可以包含多条语句,必须用花括号括起来
第4题(1.0分)题号:421
有以下程序
main()
{ int k=4,n=0;
for( ; n;)
{ n++;
if(n%3!=0) continue;
k--; }
printf("%d,%d\n",k,n);}
程序运行后的输出结果是( ).
A:1,1 B:2,2 C:3,3 D:4,0
第5题(1.0分)题号:422
读下列程序:
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1: switch(y)
{ case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
}
printf("a=%d, b=%d\n",a,b);
}
输出结果是( ).
A:a=2,b=1 B:a=1,b=1 C:a=1,b=0 D:a=2,b=2
第6题(1.0分)题号:1621
下述循环的循环次数是( )
int k=2;
while(k=0) printf("%d",k);
k--;printf("\n");
A:0次 B:1次 C:2次 D:无限次
第7题(1.0分)题号:1624
执行下列程序段后,变量i的值是( )
int i=10;
switch(i)
{ case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
default:i+=1;}
A:13 B:12 C:11 D:14
第8题(1.0分)题号:1627
以下关于语句的说法中正确的是:
A:do-while 语句的循环体至少会被执行1次 B:while语句的循环体至少会被执行1次
C:for语句的循环体至少会被执行1次 D:在C语言中只能用do,do-while,for语句实现循环第9题(1.0分)题号:1617
设I和k都是int类型,则for循环语句( ).
for(I=0,k=-1;k=1;I++,k++)
printf("****\n");
A:判断循环结束的条件不合法 B:是无限循环 C:循环体一次也不执行 D:循环体只执行一次第10题(1.0分)题号:1643
C语言中用于结构化程序设计的3种基本结构是( )
A:顺序结构、选择结构、循环结构 B:if,switch,break
C:for,while,do-while D:if,for,continue
第11题(1.0分)题号:425
有以下程序
main()
{int a=15,b=21,m=0;
switch(a%3)
{case 0:m++;break;
case 1:m++;
switch(b%2)
{default:m++;
case 0:m++;break; }
}
printf("%d\n",m);
}
程序运行后的输出结果是( ).
A:1 B:2 C:3 D:4
第12题(1.0分)题号:404
执行语句: for (i=1;i++<4;);后,
变量i的值是( ).
A:3 B:4 C:5 D:不定
第13题(1.0分)题号:1631
有如下程序
main()
{int i,sum;
for(i=l;i<=3;sum++)sum+=i;
printf("%d\n",sum);}
该程序的执行结果是( )
A:6 B:3 C:死循环 D:0
第14题(1.0分)题号:1616
要求以下程序的功能是计算:
s= 1+1/2+1/3+……+1/10
main()
{ int n; float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s); }
程序运行后输出结果错误,导致错误结果的程序行是( )
A:s=1.0; B:for(n=10;n>1;n--) C:s=s+1/n; D:printf("%6.4f\n", s);
第15题(1.0分)题号:1620
以下循环体的执行次数是______.
main()
{ int i, j;
for(i=0,j=1; i<j+1; i+=2,j--) printf("%d\n",i);}
A:3 B:2 C:1 D:0
第16题(1.0分)题号:1635
若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0): s=a;
for(b=1;b<=c;b++)
s=s+1;
则与上述程序段功能等价的赋值语句是( ).
A:s=a+b; B:s=a+c; C:s=s+c; D:s=b+c;
第17题(1.0分)题号:432
在下述程序中,判断i>j共执行的次数是( )
main()
{ int i=0,j=10,k=2,s=0;
for(;;)
{ i+=k;
if(i>j)
{ printf(″%d″,s);
break;
}s+=i;}
}
A:4 B:7 C:5 D:6
第18题(1.0分)题号:1622
下列循环语句中有语法错误的是( )
A:while(x=y) 5; B:while(0) ;C:do 2;while(x=0);D:do x++
while(x=0); while(x= =10)
第19题(1.0分)题号:1630
已知int t=0;
while (t=1){…}
则以下叙述正确的是( ).
A:循环控制表达式的值为0 B:循环控制表达式的值为1
C:循环控制表达式不合法 D:以上说法都不对
第20题(1.0分)题号:399
当处理特定问题,循环次数已知时,通常采用( )解决.
A:for循环 B:while循环 C:do循环 D:switch语句
第21题(1.0分)题号:427
以下程序段的描述,正确的是( )
x=-1;
do
{x=x*x;}while(!x);
A:是死循环 B:循环执行两次 C:循环执行一次 D:有语法错误
第22题(1.0分)题号:1628
下面关于循环语句for、while、do-while的叙述中正确的是( ).
A:三种循环语句的循环体都必须放入一对花括号中
B:三种循环语句中都可以缺省循环终止条件表达式
C:三种循环语句的循环体都至少被无条件执行一次
D:三种循环语句都可能出现无穷循环
第23题(1.0分)题号:431
以下描述中正确的是( )
A:由于do-while循环中循环体语句只能是可执行语句,所以循环体内不能使用复合语句B:do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C:在do-while循环体中,是先执行一次循环,再进行判断
D:do-while循环中,根据情况可以省略while
第24题(1.0分)题号:408
已知 int i=1;执行语句while(i++<4)后,变量i的值为__________
A:3 B:4 C:5 D:6
第25题(1.0分)题号:1629
以下程序中循环体总的执行次数是( )
int i,j;
for(i=6;i>1;i--)
for(j=0;j<i;j++)
{……}
A:20 B:261 C:15 D:25
第26题(1.0分)题号:403
若k为整型,则while循环( ).
k=10;
while(k=0) k=k-1;
A:执行10次 B:无限循环 C:一次也不执行 D:执行一次
第27题(1.0分)题号:411
下面的for语句( )
for(x=2,y=8;(y>0)&&(x<5);x++,y--);
A:是无限循环 B:循环次数不定 C:循环执行4次 D:循环执行3次第28题(1.0分)题号:1633
以下程序执行后sum的值是( )
main()
{ int i,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum); }
A:15 B:14 C:不确定 D:0
第29题(1.0分)题号:426
以下程序的输出结果是()
main( )
{int a=1,b=0;
do
{ switch(a)
{ case 1: b=1;break;
case 2: b=2; break;
default : b=0;}
b=a+b;
}while(!b);
printf("a=%d,b=%d \n",a,b);}
A:a=1,b=2 B:a=1,b=1 C:a=1,b=0 D:a=1,b=3
第30题(1.0分)题号:1625
以下不致造成死循环的语句是( ).
A:for(sum=1,i=0;sum>=i;)sum+=++i; B:for(;; x+=i);
C:for(y=0,x=1;x>++y;x=i++) i=x; D:while(x=8) x--;
第31题(1.0分)题号:1615
下列保留字中用于构成循环结构的是 ()
A:if B:while C:switch D:default
第32题(1.0分)题号:1623
已知 int i=1;执行语句while(i++<4);后,变量i的值为__________ A:3 B:4 C:5 D:6
第33题(1.0分)题号:1645
设有以下程序段
int x=0,s=0;
while(! x!=0)s+=++x;
printf(″%d″,s);
则( )
A:运行程序段后输出0 B:运行程序段后输出1
C:程序段中的控制表达式是非法的 D:程序段执行无限次
第34题(1.0分)题号:417
有以下程序段
int k=O:
while(k=l)k++;
while循环执行的次数是( )
A:无限次 B:有语法错,不能执行 C:一次也不执行 D:执行1次第35题(1.0分)题号:1634
在"while(!a)"中,其中"!a"与表达式( )等价.
A:a= =0 B:a= =1 C:a!=1 D:a!=0
第36题(1.0分)题号:1638
当执行以下程序段时( ).
y =1;
do
{ y--; }
while(--y);
A:循环体将执行一次 B:循环体将执行两次
C:循环体将执行无限次 D:系统将提示有语法错误
第37题(1.0分)题号:400
下列保留字中用于构成循环结构的是 ()
A:if B:while
C:switch D:default
第六章
一、填空共32题(共计32分)
第1题(1.0分)题号:1059
若有定义:int a[2][3]={{1},{2,3}},则初始化后,元素a[0][1]得到的初值是【1】. 第2题(1.0分)题号:398
下列程序的输出结果是【1】.
main( )
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d,",x[i][2-i]); }
第3题(1.0分)题号:1048
下面的程序打印杨辉三角形,其格式为:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
程序如下.
#define N 11
main( )
{ int i,j,a[N+1][N+1];
for(i=1;i<=N;i++)
{ a[i][i]=1;
a[i][1]=1;
}
for(【1】;i<N;i++)
for(j=2;【2】;j++)
a[i][j]=【3】;
for(i=1;i<N;i++)
{ j=N-i-1;
while(j>0) {printf(" ");j--; }
for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
}
第4题(1.0分)题号:394
若声明"char a[15]="Windows-9x";",语句"printf("%s",a+8);"的输出结果为【1】.
第5题(1.0分)题号:1071
以下程序运行后,输出结果是【1】.
main( )
{int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
printf("%2d",a[i][j]);}
第6题(1.0分)题号:1065
下面程序的运行结果为【1】. #include<stdio.h>
main( )
{char ch[7]={"12ab56"};
int i,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
s=10*s+ch[i]-'0';
printf("%d",s);}
第7题(1.0分)题号:395
若有说明"int a[ ][4]={1,2,3,4,5,6,7,8,9};",则数组a第一维的大小是【1】.
第8题(1.0分)题号:409
下面程序的运行结果是【1】.
#include<stdio.h>
main( )
{char a[]="morning",t;
int i,j=0;
for(i=1;i<7;i++)
if(a[j]<a[i]) j=i;t=a[j];a[j]=a[7];a[7]=a[j];
puts(a);}
第9题(1.0分)题号:1054
有程序
main( )
{ char a[ ]={'a','b','c','d','e','f','g','h','\0'}; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d,%d\n",i,j); }
程序运行后,输出i的值是【1】,输出j的值是【2】.
第10题(1.0分)题号:397
下列程序段的输出结果是【1】.
main( )
{char b[ ]="hello,you";
b[5]=0;
printf("%s\n",b);}
第11题(1.0分)题号:1066
下面程序运行结果的最后一行为【1】.
main( )
{ int i,f[10];
f[0]=f[1]=1;
for(i=2;i<10;i++)
f[i]=f[i-2]+f[i-1];
for(i=2;i<10;i++)
{ if(i%4==0) printf("\n");
printf("%3d",f[i]);}
}
第12题(1.0分)题号:393
先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出"Not found!"标志.
main( )
{int i,x,a[10];
for(i = 0;i<10;i ++ ) scanf("﹪d",【1】);
scanf("﹪d",&x);printf("﹪d",x);
for(i = 0;i<10;i ++) if(【2】) break;
if (i 【3】10) printf("position:﹪d \n",i);
else printf(″ Not found! \n″,x);}
第13题(1.0分)题号:417
下面程序的功能是将字符数组a[6]={'a','b','c','d','e','f'}变为
a[6]= {'f','a','b','c','d','e'}.请填空.
main()
{ char t,a[6]={'a','b','c','d','e','f'};
int i;
【1】
for(i=5;i>0;i--) 【2】
a[0]=t;
for(i=0;i<=5;i++) printf("%c",a[i]);
}
第14题(1.0分)题号:410
以下程序运行后的输出结果是【1】.
main( )
{ int i,n[ ]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
}
}
第15题(1.0分)题号:1073
# define N 7
main( )
{int i,j,temp,a[N]={1,2,3,4,5,6,7};
for(i = 0;i<N/2;i++ )
{j =N-1-i;
temp = a[i];a[i]=a[j];a[j]=temp;
}
for(i = 0;i<N;i++ ) printf("﹪2d",a[i]);
}
程序输出结果是【1】.
第16题(1.0分)题号:1077
以下程序运行时,输出结果的第一行为【1】,第三行为【2】,第五行为【3】. #include<stdio.h>
#define N 8
void main( )
{ int i,j,pa[N]={1};
printf("%5d\n",pa[0]);
for(i=1;i<N;i++)
{ pa[i]=1;
for(j=i-1;j>0;j--) pa[j]=pa[j]+pa[j-1];
for(j=0;j<=i;j++) printf("%5d",pa[j]);
printf("\n");
}
}
第17题(1.0分)题号:420
以下程序运行后输出结果中第一行为【1】,第二行为【2】,第三行为【3】. #include "stdio.h"
#define N 3
main( )
{int a[N][N],b[N*N]={1,1},i,j;
for(i=2;i<N*N;i++)
b[i]=b[i-1]+b[i-2];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[j][i]=b[i*N+j];
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
第18题(1.0分)题号:1070
下面程序输出结果为【1】.
#include <stdio.h>
void main( )
{ int i,j,a[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++) a[i][j]=1+i-j;
for(i=0;i<3;i++) {
for(j=0;j<3;j++)。

相关文档
最新文档