




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计试题及答案一、选择题(1)一个C语言程序总是从(C)开始执行A)书写顺序的第一个函数B)书写顺序的第一条执行语句C)主函数main()D)不确定(2)设intx=3,y=4,z=5,则下列表达式中的值为0的是(D)A)x&yB)x|y+z&y-zC)x=yD)!(xy)&!z|1)(3)执行以下程序段后,i的值是(C)inti=10;switch(i+1)case10:i+;break;case11:+i;case12:+i;break;default:i=i+1;A)11B)13C)12D)14(4)语句while(!e);中的条件!e等价于(A)A)e=0B)e!=1C)e!=0D)运行时出错(5)用inta4=1,2;对数组进行初始化后,数组元素a3的值是(B)A)随机值B)0C)1D)F(6)在执行charstr10=“china0”;strlen(str)的结果是(A)A)5B)6D)7D9(7)若有定义,char*p=”computer”;则语句printf(“%c”,*(p+2)运行结果是(B)A)随机值B)mC)oD)omputer(8)在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10);函数fun1参数的个数为(B)A)8B)4C)5D)编译出错(9)在说明一个结构体变量时系统分配给它的存储空间是(D)A)该结构体中第一个成员变量所需存储空间B)该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D)该结构体中所有成员变量所需存储空间的总和二)阅读程序,写出程序运行结果(1)#includemain()charch=A;ch=(ch=A&ch=Z)?(ch+32):ch;printf(“%c”,ch);程序的运行结果是:a(2)#includemain()intsum=0,i=11;while(i=10)sum=sum+i;i+;printf(“%d”,sum);程序的运行结果是:0(3)#includemain()charstr=”1a2b3c”;inti;for(i=0;stri!=0;i+)if(stri=0&stri=9)printf(“%c”,stri);程序的运行结果是:123(4)main()inta,b;a=5;b=8;p(a,b);p(a+b,a);p(intx,inty)y=x+y;printf(“%d%d”,x,y);程序的运行结果是:5131318(5)#includevoidmain()inta33=1,2,3,4,5,6,7,8,9;intj,s=1;for(j=0;j=2;j+)s=s*ajj;printf(%d,s);程序的运行结果是:1*5*9=45三)改错题(每个程序只有一个错误,填入错误语句所在的行号以及修改后的语句)(1)下段程序的功能是先输入一个整数,然后将输入的整数输出。1main()2intx;3scanf(“%d”,x);4printf(“x=%dn”,x);行号:3改为:scanf(“%d”,&x);(2)下段程序的功能是求1+2+3+4+99+100的和。1main()2intj=1,sum=0;3while(j=100)4sum=sum+j;j+;5printf(“%d”,sum);行号:4改为:sum=sum+j;j+;(3)下段程序的功能是当输入x的值为90时,输出“right”,否则输出“error”。1main()2intx;3if(x=90)printf(“right”);4elseprintf(“error”);行号:3改为:if(x=90)printf(“right”);(4)下面程序的功能是输出字符串S1main()2chars=”china”;3printf(“s=%sn”,s);行号:3改为:printf(“s=%sn”,s);(5)下面程序的功能是按照下面的格式输入a和b的值,计算y=a2+b2并输出。输入:32?输出:y=131main()2inta,b;3inty;4scanf(“a=%d,b=%d”,&a,&b);5y=a*a+b*b;6printf(“y=%dn”,y);7行号:4改为:scanf(“%d,%d”,&a,&b);C语言期末考试 试题及答案 免费下载一、单项选择题1.(D)是合法的用户自定义标识符。A、 b-b B、float C、 D、 _isw2.若变量已正确定义并赋值,表达式(B)不符合C语言语法。A、a*b/c; B、3.14%2 C、2, b D、a/b/c3.(C)是不正确的字符常量。A、nB、1C、a D、1014.在 C 程序中,用(B)表示逻辑值“真”。A、1B、非 0 的数C、非 1 的数 D、 大于 0 的数5.(C)把x、y定义成float类型变量,并赋同一初值3.14。A、float x, y=3.14;B、float x, y=2*3.14;C、float x=3.14, y=x=3.14; D、float x=y=3.14;6.若变量已正确定义,表达式(C)的值不是2。A、2&3 B、1b) k=0; else k=1;”和(C)等价。A、k=(ab)?1:0; B、k=ab;C、k=a=b;D、apk B、*p.pk C、*p-pk D、*x.pk16. 有如下程序,该程序的输出的结果是 (D)int runc(int a,int b) return(a+b);main0 int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);A) 12 B) 13 C) 14 D) 1517. 对于基类型相同的两个指针变量之间,不能进行的运算是 (C)A、) 2) return(fib(n-1)+fib(n-2);else return(2);main0 printf(“%dn”,fib(3);A 2 B 4 C 6 D 819. 有如下定义,根据上述定义,能输出字母M的语句是 (D)A) prinft(“%cn”,class3.mane);B) pfintf(“%cn”,1);C) prinft(“%cn”,1);D) printf(“%cn”,0);20. 以下所列的C语言常量中,错误的是 (B)A) 0xFF B) 1.2e0.5 C) 2L D) 7221. 有以下程序段int k=0while(k=1)k+;while 循环执行的次数是 (A)A) 无限次 B) 有语法错,不能执行C) 一次也不执行 D) 执行1次22. 以下程序的输出结果是 (C)fun(int x, int y, int z) z=x*x+y*y; main() int a=31;fun(5,2,a);printf(“%d”,a);A) 0 B) 29 C) 31 D) 无定值23. 下列程序段的输出结果是 (A)void fun(int *x, int *y) printf(“%d %d”, *x, *y); *x=3; *y=4;main() int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 224. 当调用函数时,实参是一个数组名,则向函数传送的是 (B)A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值25. 以下程序的输出结果是 (A)long fun( int n) long s;if(n= =1 | n= =2) s=2;else s=n-fun(n-1);return s;main() printf(“%ldn”, fun(3); A) 1 B) 2 C) 3 D) 426. 以下程序的输出结果是 (B)#define SQR(X) X*Xmain() int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);A) 16 B) 2 C) 9 D) 127. 以下函数返回a所指数组中最小的值所在的下标值,在下划线处应填入的是 (D)fun(int *a, int n) int i,j=0,p;p=j;for(i=j;iN;I+)if(ai=y & y=z_。2.下列程序段的输出是_1_。printf(%on, 01011);3. 下列程序段的输出是_6,90_。int k;float s;for (k=0, s=0; k 7; k +)s += k/2;printf(%d, %fn, k, s);4. 下列程序段的输出是_5,25_。#define f(a, b, x) a*x+bprintf(%d, %dn, f(3,2,1), f(6, 5, f(3, 2, 1);5. 下列程序段的输出是_*#*#_。main() int k;for(k=1; k5; k+) if(k % 2) printf(*);else continue;printf(#);6. 下列程序段的输出是_5 8_。# include int f(int x) static y=1;y+;x += y;return x;void main() int k;k=f(3);printf(%d %dn, k, f(k);7.下列程序段的输出是_5_。int *p, *q, k = 5 , j = 6 ;q = &k ; p = q ;q = &j ;printf(%d, *p);8.函数void f(char s , char t )int k=0;while (sk=tk)k+;等价于void f(char *s, char *t)while(_*s+=*t+_);9.下列程序段的输出是_ne,s_。char *a2=one, two, *p=a;printf(%s, *(p+)+1);printf(%cn, *p-1);10. 下列程序编译后生成 t.exe, 运行 t input output zoo oil 的输出结果是_zoo_。void main(int argc, char * argv ) int k;char *p=argv1;for(k=2; k0) p=argvk;printf(%sn, p);11.下列程序调用swap函数交换a和b的值,并输出交换后的a和b的值。程序的输出结果是:After swap 5, 3。void main( )int a=3, b=5;swap(&a, &b );printf(After swap %d, %d, a, b);swap( int *p, int *q )int t;t=*p; ;*p=*q ;*q=t ;C语言程序设计试题及答案(二)一、单项选择题(20分,每题2分)1程序段int*p,a;p=&a;a=10;printf(%d,p);的输出应为:A)10B)0C)不能确定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)C语言程序设计 试题及答案(五)一、单项选择题(20分,每题2分)1程序段Cint *p,a;p=&a;a=10;printf(%d,p);的输出应为:A)10 B)0 C)不能确定 D)语法错误2C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A A)单向值传递 B)地址传递 C)相互传递 D)由用户指定方式3以下语句或语句组中,能正确进行字符串赋值的是。DA)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语句的作用是跳出循环体,continue语句的作用是跳过循环体中剩余的语句而强行执行下次循环。6下面程序段将字符数组b连接到数组a的后面。main()char a20= .I am ;char b= .a student.;int i, j;i = strlen(a);for(j =_0_; bj!=0; j+)a_i+j _ = b_j _;a_i+j _ = _0_ ;7for(表达式1;表达式2;表达式3)语句组的执行顺序是先求解表达式1、再_判断表达式2_、如果成立则执行_语句组_、然后_求解表达式3_。三、写出程序的运行结果(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);答:1. 162. 0.5000002写出程序运行后的输出结果#include main()float x=2,y;if(x0)y=0;else if(x10)y=1/x;elsey=1;printf(“%fn”,y);答、0.5000003(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=%ldn,i,sum); (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写一个函数,实现将一个长度80的字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。void convert(char string)int length,mid,i;char temp;length=_ strlen _(string);mid=_ length/2_;for(_i=1_;i= .7在使用scanf函数之前可以不包含头文件stdio.h。8在scanf(%4d,&i)函数中,输入123456789,只把123456赋予变量i 。9a=b=c=d=10;是一个合法的赋值语句。10C语言的格式输出函数是scanf().12使用printf函数时,格式控制字符串和各输出项应一一对应。13在printf函数中,格式字符f的意义是:以小数形式输出单精度实数。14在printf函数中,转义字符b的作用是退格。15算术运算符的优先级别高于逻辑运算符16int a=1,b=0,c=1;,则!(a+b)+c-0&b+c/2的值为11经过下述赋值后,变量x的数据类型是( )。int x=2;double y;y=(int)(float)x;2已知字母a的ASCII码的十进制代码为97,且设ch为字符型变量,则表达式ch=a+8-3的值为【 】。3若s是int型变量,且s=6,则下面表达式的值为【 】。s%2+(s+1)%24表达式1.0/2*3的计算结果是【 】。5当a=3,b=2,c=1时,表达式f=abc的值是【 】.6getchar函数是【 】函数。7赋值语句是由赋值表达式加上【 】构成的。8在TC中,printf()函数输出表列的求值顺序是【 】。9设y为int型变量,请写出描述y是奇数的表达式【 】10若a=2,b=4,则表达式!(x=a)| (y=b)&0的值是【 】11条件0x3或x-3的c语言表达式是【 】12有int a=3,b=4,c=5;,则以下表达式的值为【 】!(a+b)+c-1&b+c/2C语言程序设计 试题及答案(六)一、单项选择题(20分,每题2分)1以下叙述中错误的是。CA)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数2以下叙述中,正确的是:CA)continue和break语句只能用于循环体内B)continue和break语句只能用于分支语句中C)continue语句只能用于循环体内D)continue语句只能用于分支语句中3执行下列程序段后,正确的结果是 C char x8 = 8,7,6,5,0,0, *s; s = x+1;printf(“%dn”, s2); A) n B) 0 C) 5 D) 64C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式5变量的指针,其含义是指该变量的 BA)值 B)地址 C)名 D)一个标志6执行下列程序段后,正确的结果是A int i=5; while(i=1) i-; printf(“%d”,i) A) 5 B) 0 C) 1 D) 无限循环7for(i=0;i10;i+) Aif(i=5) break;则循环结束后i的值为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语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式10设有数组定义:char str=”China”;则下面的输出为Bprintf(“%d”,strlen(str);A)4 B)5 C)6 D)7二、填空题(30分,每空2分)1C语言提供的三种逻辑运算符是_&_、_|_和_!_。2已知字符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);3以下程序运行后的输出结果是 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);4.下面程序将字符数组a复制到字符数组b中。main()char a=I am a boy.,b20;int i;for(i=_0_;ai!=0;i+)_ bi=ai_;_ bi= 0_;5若有定义:double x35;则x数组行下标的上限是_0_,列下标的下限是_4_。6以下程序运行后的输出结果是 101 。#define S(x) 4*(x)*(x)+1main()int i=2,j=3;printf(%dn,S(i+j);7若有定义:double x35;则x数组行下标的上限是_0_,列下标的下限是_4_。8已知宏定义#define s 2+3printf(”%d”,s*4);的输出结果是_14_。9若有int a32 = 1,3,2,4,5;,则a11的值是 2 。三、写出程序的运行结果(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);162写出程序运行结果#include main()int i=10,j=0;do j=j+i; i-;while(i2);printf(%dn,j);523写出程序运行后的输出结果。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);16四、编程(完形填空)(20分,每题10分)1打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。include main() int i,j,k,m; for(i=100; i1000; i+) j=i/100; k= i/10 ; m=i; if( j*100+k*10+m=m*m*m+j*j*j+k*k*k ) printf(%dn, i); 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(_mm_)case1:case3:case5:case7:case8:case10:case12: day=_31_;break;case4:case6:case9:case11: day=_30_;break;case2: if(yy%4=0)_&_(yy0!=0)_|_(yy0=0)day=29;elseday=28;break;C语言程序设计试题及答案(七)一、单项选择题(20分,每题2分)1C语言中,最基本的数据类型包括:(C)A)整型、实型、逻辑型B)整型、字符型、数组C)整型、实型、字符型D)整型、实型、结构体2下面正确的字符常量是:(C)A)“c”B)C)WD)3C语言中,运算对象必须是整型的运算符是:(B)A)%B)/C)*D)+4for(i=0;i5)break;则循环结束后i的值为(A)A)6B)7C)9D)105判断字符串a和b是否相等,应当使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 9.4全民守法 教学设计-2024-2025学年高中政治统编版必修三政治与法治
- 2025合作伙伴制片聘用合同
- 2025超市员工劳动合同
- 2025年合同终止通知函模板
- 2025幕墙工程的采购合同范本
- 2025合同法基本概念辨析题
- Lesson 2 Films and Television教学设计-2025-2026学年初中英语六年级下册上海新世纪版
- 印刷厂产品包装规格回收办法
- 开封事业单位笔试真题2025
- 2024年温江区招聘教师笔试真题
- GB/T 17948.7-2025旋转电机绝缘结构功能性评定总则
- 农光互补光伏发电项目发展趋势与前景分析
- 数字信号处理理论与应用练习题集
- 处方药销售管理制度2023年零售药店管理制度
- 青春期生殖健康教育
- 汉语言文学毕业论文-鲁迅小说中的知识分子形象
- 2025年黑龙江省嫩江铁路有限责任公司招聘笔试参考题库含答案解析
- 2025年度汽车销量目标达成合作协议模板
- 《生物技术在环境保护中的应用》课件
- 2025年华能上海电力检修有限责任公司招聘笔试参考题库含答案解析
- 长期供应商供货合同书
评论
0/150
提交评论