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

下载本文档

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

文档简介

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 92. 若a是int类型变量,则计算表达式a=25/3%3的值是:(B)A)3B)2C)1D)03. 下面正确的字符常量是:(C)A) “c” B) '' C)W'D) '4. C 语言中,运算对象必须是整型的运算符是:( B)A)%B)/C)*D

2、)+5. 数字字符 0 的 ASCII 值为 48,若有以下程序main()char a='1', b='2'printf("%c,",b+);printf("%dn",b-a); 程序运行后的输出结果是。 (B)A) 3,2B)50,2C)2,2D) 2,506以下语句或语句组中 , 能正确进行字符串赋值的是。 ( D)A) char *sp;*sp="right!"B ) char s10;s="right!"C) char s10;*s="right!"D)

3、 char *sp="right!"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( “%d n”, s2);A) n B) 0 C) 5 D) 69C 语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:AA) 单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式 10设有数组定义: char str= ” China ”;则下面的输出为( C

4、) printf( “ %d” ,strlen(str);A)4 B)5 C)6 D)7二、填空题( 30 分,每空 2 分) 1下列程序段的输出结果是3 。int i=19, j;a,b,c 三个变量中,B33回车 ,则输出j=i%4;printf( “% d”, j);2已知 fun1 函数的功能是将三个数按由大到小的顺序调整后依次放入 其中 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(_&

5、amp;c,&b);if(a<c) fun2(_&a,&c);if(a<b) fun2(_&a,&b);3已知字符 A 的 ASCII 代码值为 65,以下程序运行时若从键盘输入: 结果是 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

6、=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 的值是 _06若 s 是 unsigned int 型变量,则下面表达式的值是_1s%2+(s+1)%27.下面程序将字符数组 a复制到字符数组b中。main() char a="I am a boy.",b20;int i;for(i=_0;ai!='

7、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、=8) break;if(a%2=1)a+=5;continue;a-=3;printf("%dn",b);输出结果 :b=42写出程序运行后的输出结果#include <>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>yx:y;int f2(int x,int y)retu

9、rn 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;str+strlen(str)p2= str+strlen(str)-1for(i=0;i<=strlen(str)/2;i+) if(*p1+!=*p2-)t=1;break;if(_t=0 或 !t _ ) t=0return("yes!");elsereturn("no!");main()char str50;printf("Input:");scanf("%s"

11、,str);printf("%sn",_ huiwen(str) ); huiwen(srt)2下面程序完成以下功能:(1)trans ()函数将二维数组 a 进行转置,即行列互换,如下图所示;1 2 3 41 2 5 72 4 6 92 4 8 15 8 9 73 6 9 67 1 6 214 9 7 21转置前转置后(2)findmin 完整。()函数求新数组中对角线(左上到右下)上的最小元素的值;请将程序填写void trans(int b44) /* 转置函数 */ int i,j,temp; for(i=0;i<4;i+) for(j=_0_;j<4;

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

13、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) “1+2 = 10 ” C) abcde D) 1234567 4程序段i=

14、10;j = i-;printf("%d, %d", i, j);的输出应为:( B)A) 9,9 B) 9,10 C) 10,9 D) 10,10 5程序段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 个字节 D) 10 个字节 7以下说法正确的是 (C)A) C 程序总是

15、从第一个定义的函数开始执行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=0,2,4;,贝擞组x 在内存中所占字节数是(D)A

16、) 3 B) 6 C) 10 D) 20二、填空题(30分,每空2分)1. for (表达式1;表达式2;表达式3)语句组的执行顺序是先求解表达式1、再计算表达式2_、如果成立则执行一次for 循环体、然后计算表达式3_2 .表达式:765%2=1_,765/2=_382。3. 将下列字符串表示成字符串常量D:officeword "D:85% stude nt "85% student passed."4. 下面程序段将字符数组b连接到数组a的后面。mai n()char a20=."I am "char b=."a stude n

17、t."i=strle n( a);int i,j;for(i= _0_ _;bj!='O';i+)ai+j_=b_j;a_i+j= O'_ ;5. 已知funl函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。void fun 2(i nt *x,i nt *y)int t;t=*x; *x=*y; *y=t;void fun 1()int a=20, b=30, c=25;if(c>b) fun2_&c,&b);if(a<c) fun2_&a,&am

18、p;c_);if(a<b) fun2_&a,&b_);三、写出程序的运行结果(30分,每题10分)1. 写出程序运行结果(10分)#in elude <>mai n()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,10,11,12,i,*p,*q;p=a;q=&a

19、mp;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 13( 1)函数 sub() 的功能是什么( 2)写出程序运行的输出结果 long sub(int num)long subsum=1;int i;for(i=1 ; i<=num; i+)subsum*=i ;return(subsum);mai n()int i;long sum=0;for(i=1 ; i<=4 ; i+)sum+=sub(i);printf

20、("sum%1d=%ldn" , i , sum);运行结果是:i=1,sum=1i=2,sum=3i=3,sum=9i=4,sum=33四、编程(完形填空)(20分,每题10分)1 写一个函数,实现将一个长度w 80的字符串按逆序存放。解题要求:该 函数的唯一形参是字符串的起始地址。void conv ert(char stri ng)in t le ngth,mid,i;char temp ;len gth=_strlen_ (stri ng);mid=_length-1 ;for ; ivmid ; i+)temp=;stringi=string_min- ;stri

21、 ng(le ngth-1)-i=temp;2 找出100以内(包括100)满足下列条件的正整数,并按每行 4个数字的 格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可 以被11整除。mai n()int i,count=_0;prin tf("nthese nu mbers are:n");for(i=1;i_v=_IOO;i+)if (i%7=0&&i%9!=0) |(i%7!=0_&&_i%11=0)coun t+;prin tf("%10d",i);if(cou nt%4=0)printf(&

22、quot;_n");一、单项选择题( 20 分,每题 2分)1. C语言中,最基本的数据类型包括:(C)A) 整型、实型、逻辑型 B) 整型、字符型、数组C) 整型、实型、字符型 D)整型、实型、结构体2. 下面正确的字符常量是:(C)A)“c” B) '' C)W' D)'3. C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+4. for(i=0;i<10;i+)if(i>5) break;则循环结束后 i 的值为 (A)A)6 B)7 C)9 D)105. 判断字符串 a 和 b 是否相等,应当使用: (D)

23、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;i<=10;i+)a=i;printf("%d",i)的输出应为: (D)A)0 B)9 C)10 D)117. C语言中的标示符只能有字母、数字和下划线组成,且第一个字符_D.A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母或数字8. 若有说明: char c= 72 ';则变量 c: (A)A)包含一个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定9 以下说法正确

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

25、mp;&(a>b)的值是 0。5. 已知a'的 ASCII 码为 97,printf(“%5c n” , ' e')的输出是e ;printf(“%5d n” , ' e')的输出是 101。6. 下面程序将字符数组a复制到字符数组b中。mai n()char a="I am a boy.",b20;int i;for(i= _0_ _;ai!='0'i+)bi=ai._bi= 'O' _;7. 下面程序的功能是计算1-3+5-7+-99+101的值存在s中,请填空#in elude &l

26、t;>#in elude <>mai n()int i,t=1,s=0;for(i=1;iv=101;_ i+=2_ _)s=s+i*t;t= _(-1)*t_;8. 若已知a=10,b=20,则表达式!a<b的值是0三、写出程序的运行结果(30分,每题10分)1.( 1)函数func()的功能是什么(2)写出程序运行的输出结果。int fun c(i nt x,i nt y)int乙z=x+y;return 乙mai n()int e; int a=5;int b=7;c=func(a,b);printf( “A+B=%dn”,c);A+B=12 2写出程序运行后的输出结果 main()intnum44=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",numij);printf("n&quo

温馨提示

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

评论

0/150

提交评论