一c语言试题及答案.doc_第1页
一c语言试题及答案.doc_第2页
一c语言试题及答案.doc_第3页
一c语言试题及答案.doc_第4页
一c语言试题及答案.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

一、单项选择题(20分,每题2分)1程序段int *p,a;p=&a;a=10;printf(%d,p);的输出应为:A)10 B)0 C)不能确定 D)语法错误2C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式3以下语句或语句组中,能正确进行字符串赋值的是。A)char *sp;*sp=right!; B)char s10;s=right!;C)char s10;*s=right!; D)char *sp=right!;4for(i=0;i=0;i-) t*=i; printf(%dn,t);5在循环语句中,break语句的作用是 (6) ,continue语句的作用是 (7) 。6下面程序段将字符数组b连接到数组a的后面。main()char a20= .I am ;char b= .a student.;int i, j;i = strlen(a);for(j =_(8)_; bj!=0; j+)a_(9)_ = b_(10)_;a_(11)_ = _(12)_ ;7for(表达式1;表达式2;表达式3)语句组的执行顺序是先求解表达式1、再_(13)_、如果成立则执行_(14)_、然后_(15)_。三、写出程序的运行结果(30分,每题10分)1写出程序运行后的输出结果。int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(%dn,f(a);2写出程序运行后的输出结果#include main()float x=2,y;if(x0)y=0;else if(x10)y=1/x;elsey=1;printf(“%fn”,y);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);printf(sum%1d=%ldn,i,sum);四、编程(完形填空)(20分,每题10分)1写一个函数,实现将一个长度80的字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。void convert(char string)int length,mid,i;char temp;length=_(1)_(string);mid=_(2)_;for(_(3)_;imid;i+)temp=_(4)_;stringi=string_(5)_;string(length-1)-i=temp;2以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。main()int yy,mm,day;scanf(“%d%d”,&yy,&mm);switch(_(6)_)case1:case3:case5:case7:case8:case10:case12: day=_(7)_;break;case4:case6:case9:case11: day=_(8)_;break;case2: if(yy%4=0)_(9)_(yy%100!=0) (10)_(yy%400=0)day=29;elseday=28;break;答案:一、单项选择题(20分,每题2分)1.C 2.A 3.D 4.D 5.A 6.C 7.C 8.B 9.D 10.D二、填空题(30分,每空2分)(1) B 66(2) 1(3) 2(4) 2(5) 0(6) 跳出循环体(7) 跳过循环体中剩余的语句而强行执行下次循环。(8) 0(9) i+j(10) j(11) i+j(12) 0(13) 判断表达式2(14) 语句组(15) 求解表达式3三、写出程序的运行结果(30分,每题10分)1. 162. 0.5000003. (1) 函数sub( )的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算:subsum*=i的次数。 (注:非标准答案,表述相近既可)实参i取值返回值subsum的值1121*2=232*3=646*4=24 (2) 运行结果:sum0=1 sum1=3 sum2=9 sum3=33四、编程(完形填空)(20分,每题10分)1. (1) strlen(2) length/2(3) i=1(4) stringi(5) (length-1)-i2.(6) mm(7) 31(8) 30(9) &(10) |1若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式(ab?a:b)(cd?c:d)的值是。A)1 B)2 C)3 D)02for(i=0;i10;i+)if(i=5) break;则循环结束后i的值为A)0 B)1 C)5 D)103下面正确的字符常量是:A)“c” B) C)W D)4C语言中,运算对象必须是整型的运算符是:A)% B)/ C)* D)+5数字字符0的ASCII值为48,若有以下程序main()char a=1, b=2;printf(%c,b+);printf(%dn,b-a);程序运行后的输出结果是。A) 3,2 B)50,2 C)2,2 D)2,506以下选项中不能作为合法常量的是。A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e07以下说法正确的是A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main()函数中定义C)C程序总是从main()函数开始执行D)C程序的main()函数必须放在程序的开始部分8若有说明:char c=72;则变量c:A)包含一个字符 B)包含2个字符C)包含3个字符 D)说明不合法,c的值不确定9以下说法正确的是A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main()函数中定义C)C程序总是从main()函数开始执行D)C程序的main()函数必须放在程序的开始部分10int *p1,*p2,a10;p1=a;p2=&a5;则p2-p1的值为:A)无法确定 B)10 C)5 D)12二、填空题(30分,每空2分)1已知宏定义#define s 2+3printf(”%d”,s*4);的输出结果是_(1)_。2若已知a=10,b=20,则表达式!ab) fun2(_(3)_);if(ac) fun2(_(4)_);if(a=0;i-) t*=i;printf(%dn,t);5C语言函数是由函数头和函数体两部分组成。其中,函数头包括 (7) ,(8) 和(9) 。6表达式(a=b)&(ab)的值是_(10)_。7将下列字符串表示成C语言的字符串常量C:TCLIB_(11)_He said:Im a student._(12)_85% student passed._(13)_8下面程序的功能是计算1-3+5-7+-99+101的值存在s中,请填空。#include #include main()int i,t=1,s=0;for(i=1;i=101;_(14)_) s=s+i*t; t=_(15)_; 三、写出程序的运行结果(30分,每题10分)1写出程序的运行结果#include main() int i, sum=0; for(i=0;i20; i+) sum += i; if(i%2=0) | (i%3=0) ) i += 5; printf(%d, sum);2写出程序运行后的输出结果#include char *ss(char *s) return s+strlen(s)/2;main( ) char *p,*str=abcdefgh; p=ss(str); printf(%sn,p);3(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。int sub(int num)int i,product=1;for(i=1;i=num;i+)product*=2;return(product);main()int i,sum=0;for(i=0;i=3;i+)sum+=sub(i);printf(sum%d=%dn,i,sum);四、编程(完形填空)(20分,每题10分)1找出100以内满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。main()int i,count=_(1)_;printf(nthese numbers are:n);for(i=1;i_(2)_100;i+)if((i%7=0&i%9!=0) _(3)_(i%7!=0_(4) _i%11=0)count+;printf(%10d,i);if(count%4=0)printf(_(5)_);2以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,例如:输入的两个字符串分别为abcd和abcfe,则输出为-2.请填空.#include main()char str1100,str2100,c;int i,s;printf(ninput string1:n);gets(str1);printf(ninput string2:n);gets(_(6)_);i=0;while(str1i=str2i)&(str1i!=_(7)_)_(8)_;s=_(9)_;printf(_(10)_n,s);一、单项选择题(20分,每题2分)1.A 2.A 3.B 4.A 5.C 6.B 7.C 8.A 9.C 10.C二、填空题(30分,每空2分)(1) 14(2) 1(3) &b,&c(4) &a,&c(5) &a,&b(6) 0(7) 函数说明(8) 函数名(9) 圆括号中的形式参数(10) 0(11) C:TCLIB(12) C:TCLIB(13) He said:I m a student.(14) i+=2(15) -t三、写出程序的运行结果(30分,每题10分)1. 362. efgh3. (1) 函数sub( )的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算:product*=2的次数。 (注:非标准答案,表述相近既可(2) 运行结果:sum0=1 sum1=3 sum2=7 sum3=15四、编程(完形填空)(20分,每题10分)1(1) 0(2) =(3) |(4) &(5) n 2.(6) str2(7) 0(8) i+(9) str2i-str1i(10) %d一、单项选择题(20分,每题2分)1以下叙述中错误的是。A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数2以下叙述中,正确的是:A)continue和break语句只能用于循环体内B)continue和break语句只能用于分支语句中C)continue语句只能用于循环体内D)continue语句只能用于分支语句中3执行下列程序段后,正确的结果是 char x8 = 8,7,6,5,0,0, *s; s = x+1;printf(“%dn”, s2); A) n B) 0 C) 5 D) 64C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式5变量的指针,其含义是指该变量的A)值 B)地址 C)名 D)一个标志6执行下列程序段后,正确的结果是 int i=5; while(i=1) i-; printf(“%d”,i) A) 5 B) 0 C) 1 D) 无限循环7for(i=0;i10;i+)if(i=5) break;则循环结束后i的值为A)0 B)1 C)5 D)108执行下列程序段后,正确的结果是 char x8 = 8,7,6,5,0,0, *s; s = x+1;printf(“%dn”, s2); A) n B) 0 C) 5 D) 69C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式10设有数组定义:char str=”China”;则下面的输出为printf(“%d”,strlen(str);A)4 B)5 C)6 D)7二、填空题(30分,每空2分)1C语言提供的三种逻辑运算符是_(1)_、_(2)_和_(3)_。2已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 (4) 。 #include main()char a,b; a=getchar();scanf(%d,&b); a=a-A+0;b=b*2; printf(%c %cn,a,b);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);4.下面程序将字符数组a复制到字符数组b中。main()char a=I am a boy.,b20;int i;for(i=_(6)_;ai!=0;i+)_(7)_;_(8)_;5若有定义:double x35;则x数组行下标的上限是_(9)_,列下标的下限是_(10)_。6以下程序运行后的输出结果是 (11) 。#define S(x) 4*(x)*(x)+1main()int i=2,j=3;printf(%dn,S(i+j);7若有定义:double x35;则x数组行下标的上限是_(12)_,列下标的下限是_(13)_。8已知宏定义#define s 2+3printf(”%d”,s*4);的输出结果是_(14)_。9若有int a32 = 1,3,2,4,5;,则a11的值是 (15) 。三、写出程序的运行结果(30分,每题10分)1写出程序运行后的输出结果。int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(%dn,f(a);2写出程序运行结果#include main()int i=10,j=0;do j=j+i; i-;while(i2);printf(%dn,j);3写出程序运行后的输出结果。int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(%dn,f(a);四、编程(完形填空)(20分,每题10分)1打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。include main() int

温馨提示

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

评论

0/150

提交评论