c试题3.docx
- 文档编号:3639862
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:13
- 大小:24.02KB
c试题3.docx
《c试题3.docx》由会员分享,可在线阅读,更多相关《c试题3.docx(13页珍藏版)》请在冰豆网上搜索。
c试题3
C程序设计—试题3
一:
单项选择题(每题1分,共40分)
1、一个C程序的执行是从_a________。
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到main函数结束
2、一个C语言程序是由_____b_____。
A、一个主程序和若干子程序组成B、函数组成
C、若干过程组成D、若干子程序组成
3、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是_A_____。
A、7B、8C、6D、2
4、下面四个选项中,均是不合法的用户标识符的选项是_____C___。
A、AB、switchC、b-aD、-123
P_0la0gototemp
Do_AintINT
5、已知各变量的类型说明如下
intk,a,b;
unsignedlongw=5;
doublex=1。
42;
则以下不符合C语言的表达式是_A_______。
A、x%(-3)B、w+=-2C、k=(a=2,b=3,a+b)D、a+=(b=4)*(a=3)
6、以下程序的输出结果是___d_____。
main()
{printf(“\n*s1=%15s*”,”chinabeijing”);
printf(“\n*s2=%-5s*”,”chi”);
}
A、*s1=chinabeijing*B、*s1=chinabeijing*
*s2=chi**s2=chi*
C、*s1=chinabeijing*D、*s1=chinabeijing*
*s2=chi**s2=chi*
7、已有定义intx;floaty;且执行scanf(“%3d%f”,&x,&y);语句若从第一列开始输入数据12345678
<回车>,则x的值为_____b___,y的值为____b_______。
(1)A、12345B、123C、45D、345
(2)A、无定值B、45。
000000C、678。
000000D、123。
000000
8、已知ch是字符变量,下面不正确的赋值语句是__a______。
A、ch=’a+b’;B、ch=’\xff’;C、ch=’7’+’9’;D、ch=5+9;
9、下列运算符中优先级最高的是_______B___。
A、
=
10、下面正确的if语句是_b______。
A、if(x>0)printf(“%f”,x)elseprintf(“%f”,-x)
B、if(x>0){x=x+y;printf(“%f”,x);}elseprintf(“%f”,-x);
C、if(x>0){x=x+y;printf(“%f”,x);};elseprintf(“%f”,-x);
D、if(x>0){x=x+y;printf(“%f”,x)}elseprintf(“%f”,-x);
11、若w=1,x=2,y=3,z=4,则条件表达式w w、y y、z的值是__D____。 A、4B、3C、2D、1 12、以下叙述中正确的是___d_____。 A、输入项可以是一个实型常量,如、scanf("%f,"3。 5); B、只有格式控制,没有输入项,也能正确输入数据到内存,例如、scanf("a=%d,b=%d");C、当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf("%4。 2f",&f); D、当输入数据时,必须指明变量地址,例如: scanf("%f",&f); 13、以下程序的输出结果是___d____。 main() {inta=12,b=12; printf("%d%d\n",--a,++b);} A、1010 B、1212 C、1110 D、1113 14、设有程序段intk=10; while(k=0)k=k-1; 则下面描述中正确的是__c______。 A、while循环执行10次B、循环是无限循环 C、循环体语句一次也不执行D、循环体语句执行一次 15、执行语句for(i=1;i++<4;);后变量i的值是__C___。 A、3B、4C、5D、不定 16、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为_____b___。 if(a if(c else if(a if(b elsex=3; elsex=4; elsex=5; A、1B、2C、3D、6 17、在执行以下程序时,如果从键盘上输入: ABCdef<回车>,则输出为B________。 #include h> main() {charch; while((ch=getchar())! ='\n') {if(ch>='A'&&ch<='Z')ch=ch+32; elseif(ch>='a'&&ch<'z')ch=ch+32; printf("%c",ch);} printf("\n");} A、ABCdefB、abcDEFC、abcD、DEF 18、在下列选项中,没有构成死循环的程序段是__D_____。 A、inti=100;while (1){i=i%100+1;if(i>100)break;} B、for(;;); C、intk=1000;do{++k;}while(k>=1000) D、ints=36;while(s)--s; 19、有以下程序 #include main() {inta,b,c=246; a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是___A____。 A、2,1B、3,2C、4,3D、2,-1 20、设j为int型变量,则下面for循环语句的执行结果是__B____。 for(j=10;j>3;j--) {if(j%3)j--; --j;--j; printf("%d",j); } A、63B、74C、62D、73 21、以下对一维整型数组a的正确说明是___d_____。 A、inta(10);B、intn=10,a[n]; C、intn;scanf(“%d”,&n);inta[n]; D、#defineSIZE10inta[SIZE]; 22、有下面的程序段 chara[3],b[]=“China”; a=b; printf(“%s”,a); 则___d____。 A、运行后将输出ChinaB、运行后将输出Ch C、运行后将输出ChiD、编译出错 23、以下程序有语法性错误,有关错误原因的正确说法是___c__。 main() {intG=5,k; voidprt-char(); ……… k=prt-char(G); ………} A、语句voidprt-char()有错,它是函数调用语句,不能用void说明 B、变量名不能使用大写字母 C、函数说明和函数调用语句之间有矛盾 D、函数名不能使用下划线 24、已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式 为_____b____。 例如inta[3][4];f(a); A、f(intarray[][6])B、f(intarray[3][]) C、f(intarray[][4])D、f(intarray[2][5]) 25、在宏定义#definePI3。 14159中,用宏名PI代替一个___D_。 A、常量B、单精度数C、双精度数D、字符串 26、已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值 语句是_b______。 A、k=*ptr1+*ptr2;B、ptr2=k; C、ptr1=ptr2;D、k=*ptr1*(*ptr2); 27、以下程序运行后,输出结果是__C____。 main() {char*s="abcde"; s+=2; printf("%ld\n",s); } A、cdeB、字符c的ASCII码值 C、字符c的地址D、出错 28、下面能正确进行字符串赋值操作的语句是__B______。 A、chars[5]={"ABCDE"}; B、chars[5]={'A'、'B'、'C'、'D'、'E'}; C、char*s;s="ABCDEF"; D、char*s;scanf("%s",s); 29、有以下程序 #include"atdio。 h" intabc(intu,intv); main() {inta=24,b=16,c; c=abc(a,b); printf('%d\n",c);} intabc(intu,intv) {intw; while(v) {w=u%v;u=v;v=w} returnu;} 输出结果是____c______。 A、6B、7C、8D、9 30、有以下程序 viodfun(inta,intb,intc) {a=456;b=567;c=678;} main() {intx=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); } 输出结果是___B_____。 A、30,20,10B、10,20,30 C、456,567,678D、678,567,456 31、有以下程序 intfun(intx,inty,int*cp,int*dp) {*cp=x+y;*dp=x-y;} main() {inta,b,c,d; a=30;b=50; fun(a,b,&c,&d); printf("%d,%d\n",c,d);} 输出结果是____c_____。 A、50,30B、30,50C、80,-20D、80,20 32、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是_b_________。 A、k=*P1+*P2;B、p2=k;C、P1=P2;D、K=*P1*(*P2); 33、以下叙述中不正确的是___d_____。 A、在不同的函数中可以使用相同名字的变量 B、函数中的形式参数是局部变量 C、在一个函数内定义的变量只在本函数范围内有效 D、在一个函数内的复合语句中定义的变量在本函数范围内有效 34、给出以下定义: charx[]="abcdefg"; chary[]={'a','b','c','d','e','f','g'}; 则正确的叙述为__C______。 A、数组X和数组Y等价B、数组x和数组Y的长度相同 C、数组X的长度大于数组Y的长度D、数组X的长度小于数组Y的长度 35、下列不正确的转义字符是______c____。 A、'\\'B、'\"C、'074'D、'\0' 36、运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为____C_____。 main() {intm,n; printf{"Enterm,n、"}; scanf("%d%d,&m,&n"); while(m! =n) {while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m);} A、m=3B、m=2C、m=1D、m=0 37、在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是_C______。 main() {ints,t,a,b; scanf("%d,%d",&a,&b); s=1;t=1; if(a<=0)s=s+1; if(a>b)t=s+1; elseif(a==b)t=5; elset=2*s; printf("t=%d\n",t);} A、a>b B、aa>b 38、以下程序执行后,a的值是C mian() {inta,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;printf("%d\n",a);} A、4B、1C、0D、运行时出错,无定值 39、若有条件表达式(exp)? a++、b--,则以下表达式中能完全等价于表达式(exp)的是___b____。 A、(exp==0)B、(exp! =0) C、(exp==1) D、(exp! =1) 40、系统的标准输入文件是指___a___。 A、键盘B、显示器C、软盘D、硬盘 二.填空题(20%) 1、C源程序的基本单位是___函数__________。 2、在C语言中,一个函数一般由两个部分组成,它们是__函数首部________和_____函数体______。 3、当a=3,b=2,c=1时,表达式f=a>b>c的值是__0______________。 4、以下程序的运行结果是_maxis2_____。 #include main() {inta=1,b=2,c; c=max(a,b); printf(“maxis%d\n”,c); } max(intx,inty) {intz; z=(x>y)? x、y; return(z); } 5: 设有以下宏定义: #defineWIDTH80 #defineLENGTHWIDTH+40 则执行赋值语句: v=LENGTH*20;(v为int型变量)后,v的值是_______。 6、以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。 main() {charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; intc[64],d,i=0,base; longn; printf("enteranumber、\n");scanf("%ld",&n); printf("enternewbase、\n");scanf("%d",&base); do {c[i]=_________; i++;n=n/base; }while(n! =0); printf("transmitenewbase、\n"); for(--i;i>=0;--i) {d=c[i]; printf("%c",b______; } } 7、函数fun的功能是、使一个字符串按逆序存放,请填空 voidfun(charstr[]) {charm;inti,j; for(i=0,j=strlen(str);i<_________;i++,j--) {m=str[i]; str[i]=_________; str[j-1]=m; } printf("%s\n",str); } 8、以下程序的输出结果是8,,17___。 #include intfun(intx,inty) {staticintm=0,i=2; i+=m+1; m=i+x+y; returnm } main() {intj=4,m=1,k; k=fun(j,m);printf("%d,",k); k=fun(j,m);printf("%d\n",k); } 三、判断题(10%) 1、C源程序可以包含多个main函数。 (x) 2、运算符优先级顺序是、赋值运算符<逻辑运算符<关系运算符<算术运算符(x) 3、while和do-while两种循环语句的结果是一致。 (? ) 4、break语句只能用于switch语句中。 (x) 5、变量的指针就是变量的地址。 (/) 6、表达式1。 0/2的值是0。 (X) 7、C语言中,函数可以嵌套调用。 (/) 8、C语言中有字符变量和字符串变量。 (x) 9、数组名是一个指向该数组首地址的指针。 (/) 10、函数的实参可以是常量或变量,但必须要有一个确定的值。 (/) 四、改错题(10%,每小题2分) 以下程序各有一处出错,试指出并更正。 1、设 inta,b,c; a=b+c/要加; 2、设 ints;floata,b;/a,b应为int型 s=a%b; 3、设 if(x! =y)scanf(“%d”,&x)/要加;elsescanf(“%d”,&y); 4、设 floatx; x=35。 578;/ printf(“%d”,x);/%f 5、设 inta[3];/inta[3]={1,2,3} scanf(“%d”,&a); 五、绘流程图题(10%,每小题5分) 1、main() { intm=5; if(m++>5)printf(“%d\n”,m); elseprintf(“%d\n”,m--); } 2、main() { inti; for(i=1;i<=5;i++) {if(i%2)printf(“*”); elsecontinue; printf(“#”); } printf(“$\n”); } 六、编程题(10%) 1、用IF语句设计一个程序,计算 #include Intmain() { Floatx,y;、main() {floatx,y; scanf(“%d”,&x); if(x>0)y=1; elseif(x<0)y=-1; elsey=0; printf(“x=%d,y=%\n”,x,y) } 2、设计一个程序,计算100! 、main() {inti,s; i=1;s=1 do{s=s*i; i++; }while(i<=100); printf(“i=%d,s=%d\n”,i,s);}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)