1、c语言题目及答案注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分) 1执行下列程序段后,正确的结果是(B) int k, a33 = 1,2,3,4,5,6,7,8,9; for(k=0; k3; k+) printf(“%2d”, akk); A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 9 2若a是int类型变量,则计算表达式a=25/3%3的值是:(B) A)3 B)2 C)1 D)0 3下面正确的字符常量是:(C) A)“c” B) C)W D) 4 C语言中,运算对象必须是整型的运算符是:(B) A)% B)/ C)* D)+ 5数字字符0的ASC
2、II值为48,若有以下程序 main() char a=1, b=2; printf(%c,b+); printf(%dn,b-a); 程序运行后的输出结果是。(B) A) 3,2 B)50,2 C)2,2 D)2,50 6以下语句或语句组中,能正确进行字符串赋值的是。(D) A)char *sp;*sp=right!; B)char s10;s=right!; C)char s10;*s=right!; D)char *sp=right!; 7for(i=0;ib) fun2(_&c,&b_); if(ac) fun2(_&a,&c_); if(ab) fun2(_&a,&b_); 3已知字
3、符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 1 B 。 #include 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(ba & ac) t=a;a=c;c=t; if(ac & bc) t=b;b=a;a=t; printf(%d %d %dn,a,b,c); 5若已知a=10,b=20,则表达式!a=0;i-) t*=i; print
4、f(%dn,t); 10在循环语句中,break语句的作用是 是用来跳出当前一层循环的 ,continue语句的作用是 终止本次循环。 三、写出程序的运行结果(30分,每题10分) 1写出程序运行后的输出结果 main() int a=1,b; for(b=1;b=8) break; if(a%2=1) a+=5; continue; a-=3; printf(%dn,b); 输出结果:b=4 2写出程序运行后的输出结果 #include char *ss(char *s) return s+strlen(s)/2; main( ) char *p,*str=abcdefgh; p=ss(st
5、r); printf(%sn,p); 输出结果:efgh 3写出程序运行后的输出结果 int f1(int x,int y)return xyx:y; int f2(int x,int y)return xyy: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的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字
6、符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。 #include #include 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=0 return(yes!); else return(no!); main() char str50
7、; printf(Input:); scanf(%s,str); printf(%sn,_ huiwen(str) _ ); huiwen(srt) 2下面程序完成以下功能: (1)trans()函数将二维数组a进行转置,即行列互换,如下图所示; 1 2 3 4 1 2 5 7 2 4 6 9 2 4 8 1 5 8 9 7 3 6 9 6 7 1 6 21 4 9 7 21 转置前 转置后 (2)findmin()函数求新数组中对角线(左上到右下)上的最小元素的值;请将程序填写完整。 void trans(int b44) /*转置函数*/ int i,j,temp; for(i=0;i4;
8、i+) for(j=_0_;j4;j+) temp=bij; bij=bji; bji=temp; int findmin(int b44) /*求对角线上最小的元素*/ int min,i,j; min=_; for(i=0;i4;i+) if(_biimin_) min=_ bii_ _; return min; main() int i,j; int a44,min; for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&aij); trans(a); printf(“the result is:”); for(i=0;i4;i+) for(j=0;j4;j+)
9、 printf(%5d,aij); printf(n); min=_findmin(a)_; printf(the min is%5dn,min); 2份注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分)1下面那个变量是合法的。(A)A) _a_2 B) 12a C) D) _3-22不能用于实型数据的运算符是:(A)A) % B) / C) * D) +3下面正确的字符串常量是:(B)A) 1+2=3 B) “1+2 = 10” C) abcde D) 12345674程序段int i, j;i=10;j = i-;printf(%d, %d, i, j);的输出应为:(B)A
10、) 9,9 B) 9,10 C) 10,9 D) 10,105程序段int i;for(i=0;ib) fun2(_&c,&b_);if(ac) fun2(_&a,&c_);if(ab) fun2(_&a,&b_);三、写出程序的运行结果(30分,每题10分)1写出程序运行结果(10分)#include main()int i=5;static char c6=abcd;doci=ci-1;i-;while(i0);puts(c);运行结果是:aabcd2写出程序运行后的输出结果void f(int *x,int *y) int t; t=*x;*x=*y;*y=t; main() int a
11、12=1,2,3,4,5,6,7,8,9,10,11,12,i,*p,*q; p=a;q=&a11; while(pq)f(p,q);p+;q-;for(i=0;i12;i+)printf(%d,ai);运算结果是:12 11 10 9 8 7 6 5 4 3 2 1 3(1)函数sub()的功能是什么(2)写出程序运行的输出结果。long sub(int num)int i;long subsum=1;for(i=1;i=num;i+)subsum*=i;return(subsum);main()int i;long sum=0;for(i=1;i=4;i+)sum+=sub(i);prin
12、tf(sum%1d=%ldn,i,sum);运行结果是:i=1,sum=1i=2,sum=3i=3,sum=9i=4,sum=33四、编程(完形填空)(20分,每题10分)1写一个函数,实现将一个长度80的字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。void convert(char string)int length,mid,i;char temp;length=_strlen_ (string);mid=_length-1_;for(_i=0_;imid;i+)temp=_stringi_;stringi=string_min-_;string(length-1)-i=
13、temp;2找出100以内(包括100)满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。main()int i,count=_0_;printf(nthese numbers are:n);for(i=1;i_=_100;i+)if((i%7=0&i%9!=0)_|_(i%7!=0_&_i%11=0)count+;printf(%10d,i);if(count%4=0)printf(_n_);3份一、单项选择题(20分,每题2分)1C语言中,最基本的数据类型包括:(C)A)整型、实型、逻辑型 B)整型、字符型、数组C)
14、整型、实型、字符型 D)整型、实型、结构体2下面正确的字符常量是:(C)A)“c” B) C)W D)3C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+4for(i=0;i5) break;则循环结束后i的值为(A)A)6 B)7 C)9 D)105判断字符串a和b是否相等,应当使用:(D)A)if(a=b) B)if(a=b)C)if(strcpy(a,b) D)if(strcmp(a,b)0)6程序段int i,a;for(i=0;ib)的值是_0_。5.已知a的ASCII码为97,printf(“%5cn”,e)的输出是_e_;printf(“%5dn”,e)
15、的输出是_101_。6.下面程序将字符数组a复制到字符数组b中。main()char a=I am a boy.,b20;int i;for(i=_0_;ai!=0;i+)_bi=ai_;_bi=0_;7下面程序的功能是计算1-3+5-7+-99+101的值存在s中,请填空。#include #include main()int i,t=1,s=0;for(i=1;i=101;_ i+=2_) s=s+i*t; t=_(-1)*t_; 8若已知a=10,b=20,则表达式!ab的值是_0_三、写出程序的运行结果(30分,每题10分)1(1)函数func()的功能是什么(2)写出程序运行的输出结
16、果。int func(int x,int y)int z;z=x+y; return z;main()int c;int a=5;int b=7;c=func(a,b);printf(“A+B=%dn”,c);A+B=122写出程序运行后的输出结果main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j; for(i=0;i4;i+) for(j=0;j=i;j+) printf(%4c, ); for(j=i;j4;j+) printf(%4d,numij); printf(n); 运行结果是:*1*2*3*4*6*7*8*11*
17、12*16(注意:*表示空格)3(1)程序的功能是什么(2)写出程序运行的输出结果。#define n 8main()int i,j,t,min,an=65,55,90,100,40,70,5,20;for(i=0;in-1;i+)min=i;for(j=i+1;jn;j+)if(ajamin)min=j;if(min!=i)t=amin;amin=ai;ai=t;for(i=0;in;i+)printf(%4d,ai);功能是:从大到小排序运行结果是:100 90 70 65 55 40 20 5四、编程(完形填空)(20分,每题10分)1编程将两个2*3的二维数组中的对应元素的值相加后存入第3个数组中。#include #include main()int i,j,c23 _;int a23=1,2,3,4,5,6;int b23=7,8,9,10,11,12;for(i=0;_i2_;i+)for(j=0;_j3_;j+)cij=a_i_j_+bij;2以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,例如:输入的两个字符
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1