C语言程序设计试题及答案(三)word资料6页.doc
如有侵权,请联系网站删除,仅供学习与交流C语言程序设计试题及答案(三)【精品文档】第 6 页C语言程序设计试题及答案(三) 学号: 学习中心名称: 专业: 层次: 姓名: 题号一二三四五六七八九十总分得分 注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分)1执行下列程序段后,正确的结果是(B)int k, a33 = 1,2,3,4,5,6,7,8,9;for(k=0; k<3; k+)printf(“%2d”, akk);A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 92若a是int类型变量,则计算表达式a=25/3%3的值是:(B)A)3 B)2 C)1 D)03下面正确的字符常量是:(C)A)“c” B) C)W D)4 C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+5数字字符0的ASCII值为48,若有以下程序main()char a='1', b='2'printf("%c,",b+);printf("%dn",b-a);程序运行后的输出结果是。(B)A) 3,2B)50,2 C)2,2D)2,506以下语句或语句组中,能正确进行字符串赋值的是。(D)A)char *sp;*sp="right!"B)char s10;s="right!" C)char s10;*s="right!"D)char *sp="right!"7for(i=0;i<10;i+)if(i=5 break;则循环结束后i的值为(B)A)0 B)1 C)5 D)108执行下列程序段后,正确的结果是(C)char x8 = 8,7,6,5,0,0, *s;s = x+1;printf(“%dn”, s2);A) n B) 0 C) 5 D) 69C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:AA)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式10设有数组定义:char str=”China”;则下面的输出为(C)printf(“%d”,strlen(str);A)4 B)5 C)6 D)7二、填空题(30分,每空2分)1下列程序段的输出结果是 3 。 int i=19, j;j=i%4;printf(“% d”, j);2已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。void fun2(int *x,int *y)int t;t=*x; *x=*y; *y=t;void fun1()int a=20, b=30, c=25;if(c>b) fun2(_&c,&b_);if(a<c) fun2(_&a,&c_);if(a<b) fun2(_&a,&b_);3已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是 1 B 。 #include <stdio.h>main()char a,b; a=getchar();scanf("%d",&b); a=a-'A'+'0'b=b*2; printf("%c %cn",a,b);4以下程序运行后的输出结果是 4 3 5 。main()int a=3,b=4,c=5,t=99; if(b<a && a<c) t=a;a=c;c=t; if(a<c && b<c) t=b;b=a;a=t; printf("%d %d %dn",a,b,c);5若已知a=10,b=20,则表达式!a<b的值是_0_6若s是unsigned int型变量,则下面表达式的值是_1_。s%2+(s+1)%27.下面程序将字符数组a复制到字符数组b中。main()char a="I am a boy.",b20;int i;for(i=_0_;ai!='0'i+)_bi=ai_;_bi=0_;8若有int a32 = 1,3,2,4,5;,则a11的值是 2 。9有以下程序,执行后输出结果是 0 。main( )int t=1,i=5; for(;i>=0;i-) t*=i; printf("%dn",t);10在循环语句中,break语句的作用是 是用来跳出当前一层循环的 ,continue语句的作用是 终止本次循环。三、写出程序的运行结果(30分,每题10分)1写出程序运行后的输出结果 main() int a=1,b; for(b=1;b<=10;b+) if(a>=8) break; if(a%2=1)a+=5;continue;a-=3; printf("%dn",b); 输出结果:b=42写出程序运行后的输出结果#include <string.h>char *ss(char *s)return s+strlen(s)/2;main( ) char *p,*str="abcdefgh" p=ss(str); printf("%sn",p);输出结果:efgh3写出程序运行后的输出结果 int f1(int x,int y)return x>y?x:y; int f2(int x,int y)return x>y?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf("%d,%d,%dn",e,f,g); 4,3,7四、编程(完形填空)(20分,每题10分)1以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。#include <stdio.h>#include <string.h>char *huiwen(char *str)char *p1,*p2; int i,t=0;p1=str;p2=_ str+strlen(str)-1_; str+strlen(str)for(i=0;i<=strlen(str)/2;i+)if(*p1+!=*p2-)t=1;break; if(_t=0或!t_ ) t=0return("yes!"); else return("no!");main()char str50;printf("Input:"); scanf("%s",str);printf("%sn",_ huiwen(str) _ ); huiwen(srt)2下面程序完成以下功能:(1)trans()函数将二维数组a进行转置,即行列互换,如下图所示;1 2 3 4 1 2 5 72 4 6 9 2 4 8 15 8 9 7 3 6 9 67 1 6 21 4 9 7 21转置前 转置后(2)findmin()函数求新数组中对角线(左上到右下)上的最小元素的值;请将程序填写完整。void trans(int b44) /*转置函数*/int i,j,temp;for(i=0;i<4;i+)for(j=_0_;j<4;j+)temp=bij;bij=bji;bji=temp;int findmin(int b44) /*求对角线上最小的元素*/int min,i,j;min=_;for(i=0;i<4;i+)if(_bii<min_)min=_ bii_ _;return min;main()int i,j;int a44,min;for(i=0;i<4;i+)for(j=0;j<4;j+)scanf("%d",&aij);trans(a);printf(“the result is:”);for(i=0;i<4;i+)for(j=0;j<4;j+)printf("%5d",aij);printf("n");min=_findmin(a)_;printf("the min is%5dn",min);