c语言习题目及答案_第1页
c语言习题目及答案_第2页
c语言习题目及答案_第3页
c语言习题目及答案_第4页
c语言习题目及答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、注意:所有答案都要写在答题卡上一、单项选择题(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 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的ASCII值为

2、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

3、!" 7for(i=0;i<10;i+) if(i=5 break; 则循环结束后i的值为(B) A)0 B)1 C)5 D)10 8执行下列程序段后,正确的结果是(C) char x8 = 8,7,6,5,0,0, *s; s = x+1; printf(“%dn”, s2); A) n B) 0 C) 5 D) 6 9C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式 10设有数组定义:char str=”China”;则下面的输出为(C) printf(“%d”,strlen(str)

4、; 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(_&

5、a,&c_); if(a<b) fun2(_&a,&b_); 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=9

6、9; 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)%2 7.下面程序将字符数组a复制到字符数组b中。 main() char a="I am a boy.",b20; int i; for(i=_0_;ai!='0'

7、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;

8、 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(str); printf("%sn",p); 输出结果:efgh 3写出程序运行后的输出结果 int f1(int x,int y)return x>yx:y; int f2(int x,int y

9、)return x>yy: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 <>

10、; #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; printf("Input:"); sc

11、anf("%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

12、;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

13、 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); 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

14、) “1+2 = 10” C) abcde D) 12345674程序段int i, j;i=10;j = i-;printf("%d, %d", i, j);的输出应为:(B)A) 9,9 B) 9,10 C) 10,9 D) 10,105程序段int i;for(i=0;i<=10;i+)if(i=20)break;printf("%d",i)的输出应为:(D)A) 21 B) 20 C) 10 D) 116设有数组定义:char array=”Beijing”;则数组array所占的存储空间为:(B)A) 7个字节 B) 8个字节 C) 9个

15、字节 D) 10个字节7以下说法正确的是(C)A) C程序总是从第一个定义的函数开始执行B) 在C程序中,要调用的函数必须在main()函数中定义C) C程序总是从main()函数开始执行D) C程序的main()函数必须放在程序的开始部分8程序段int *p, a=1;p=&a;*p=10;a的值为:(C)A) 1 B) 10 C) 不能确定 D) 119以下定义语句中,错误的是 (D)A) int a=1,2; B) char *a3; C) char s10="test" D) int n=5,an; 10假定int类型变量占用两个字节,有定义:int x10

16、=0,2,4;,则数组x在内存中所占字节数是(D)A) 3 B) 6 C) 10 D) 20二、填空题(30分,每空2分)1for(表达式1;表达式2;表达式3)语句组的执行顺序是先求解表达式1、再_计算表达式2_、如果成立则执行_一次for循环体_、然后_计算表达式3_2表达式:765%2=_1_,765/2=_382_。3将下列字符串表示成字符串常量D:officeword "D:officeword"_85% student "85% student passed."_4下面程序段将字符数组b连接到数组a的后面。main()char a20=.&q

17、uot;I am "char b=."a student."int i,j;i=strlen(a);for(j=_0_;bj!='0'j+)ai+j_=b_j_;a_i+j=_0_;5已知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(

18、a<c) fun2(_&a,&c_);if(a<b) fun2(_&a,&b_);三、写出程序的运行结果(30分,每题10分)1写出程序运行结果(10分)#include <>main()int i=5;static char c6="abcd"doci=ci-1;i-;while(i>0);puts(c);运行结果是:aabcd2写出程序运行后的输出结果void f(int *x,int *y) int t; t=*x;*x=*y;*y=t; main() int a12=1,2,3,4,5,6,7,8,9,1

19、0,11,12,i,*p,*q; p=a;q=&a11; while(p<q)f(p,q);p+;q-;for(i=0;i<12;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+=

20、sub(i);printf("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_;i<mid;i+)temp=_stringi_;stringi=strin

21、g_min-_;string(length-1)-i=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)pri

22、ntf("_n_");3份一、单项选择题(20分,每题2分)1C语言中,最基本的数据类型包括:(C)A)整型、实型、逻辑型 B)整型、字符型、数组C)整型、实型、字符型 D)整型、实型、结构体2下面正确的字符常量是:(C)A)“c” B) C)W D)3C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+4for(i=0;i<10;i+)if(i>5) 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

23、)if(strcmp(a,b)0)6程序段int i,a;for(i=0;i<=10;i+)a=i;printf("%d",i)的输出应为:(D)A)0 B)9 C)10 D)117C语言中的标示符只能有字母、数字和下划线组成,且第一个字符_D_.A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母或数字8若有说明:char c=72;则变量c:(A)A)包含一个字符 B)包含2个字符C)包含3个字符 D)说明不合法,c的值不确定9以下说法正确的是(C)A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main()函数中定义C

24、)C程序总是从main()函数开始执行D)C程序的main()函数必须放在程序的开始部分10int *p1,*p2,a10;(C)p1=a;p2=&a5;则p2-p1的值为:A)无法确定 B)10 C)5 D)12二、填空题(30分,每空2分)1C语言中实型数据分为两种他们是_小数数形式_和_指数形式_。2在C语言中,逻辑真用_非零_表示,逻辑假用_零_表示。3若有定义:double x35;则x数组行下标的上限是_2_,列下标的下限是_0_。4表达式(a=b)&&(a>b)的值是_0_。5.已知a的ASCII码为97,printf(“%5cn”,e)的输出是_e

25、_;printf(“%5dn”,e)的输出是_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,则表达式!a<

26、b的值是_0_三、写出程序的运行结果(30分,每题10分)1(1)函数func()的功能是什么(2)写出程序运行的输出结果。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;i<4;i+) for(j=0;j<=i;j+) printf("%4c",' '); for(j=i;j<4;j+) printf("%4d",numi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论