c程序设计复习.docx
- 文档编号:14228998
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:19
- 大小:41.13KB
c程序设计复习.docx
《c程序设计复习.docx》由会员分享,可在线阅读,更多相关《c程序设计复习.docx(19页珍藏版)》请在冰点文库上搜索。
c程序设计复习
注意事项:
1、满分100分。
要求卷面整洁、字迹工整、无错别字。
2、考试必须将姓名、班级、学号完整、准确、清楚地填写在试卷规定地方,否则视为废卷。
3、考试必须在签到单上签到,若出现遗漏,后果自负。
4、如有答题纸,答案请全部填写在答题纸上,否则不给分;考完请将答题纸和试卷一同交回,
否则不给分。
试题
得分
评阅教师
一、选择题(⑴-(26)题每题1分,(27)-(36)题每题2分,共46分)
(1)以下非法的赋值语句是______。
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;
(2)设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
A) 6.500000 B) 6 C) 5.500000 D) 6.000000
(3)若intk=7,x=12;则能使值为3的表达式是。
A)x%=(k%=5)B)x%=(k-k%5)
C)x%=k-k%5D)(x%=k)-(k%=5)
(4)与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是______。
A) 3*x^n/(2*x-1)
B) 3*x**n/(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1))
D) 3*pow(n,x)/(2*x-1)
(5)执行下列程序片段时输出结果是。
intx=13,y=5;
cout<<(x%=(y/=2));
A)3B)2C)1D)0
(6)若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k);cout< } 执行后的输出结果是______。 A) 8,6 B) 8,3 C) 6,4 D) 7,4 (7)已有定义: int x=3,y=4,z=5;,则表达式! (x+y)+z-1&&y+z/2的值是______。 A) 6 B) 0 C) 2 D) 1 (8)有一函数 1 x>0 y= 0 x=0 -1 x<0, (9)以下程序段中不能根据x的值正确计算出y的值的是______。 A) if(x>0) y=1;else if(x==0) y=0;else y=-1; B) y=0;if(x>0) y=1;else if(x<0) y=-1; C) y=0;if(x>=0)if(x>0) y=1;else y=-1; D) if(x>=0) if(x>0) y=1;else y=0;else y=-1; (9)以下选项中,与k=n++完全等价的表达式是_______。 A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 (10)以下程序的功能是: 按顺序读入10名学生4门课程的成绩, 计算出每位学生的平均分并输出,程序如下: main() {int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) {for(k=1;k<=4;k++) {cin>>score; sum+=score;} ave=sum/4.0; cout< } } 上述程序运行后结果不正确,调试中发现有一条语句 出现在程序的位置不正确。 这条语句是______。 A) sum=0.0; B) sum+=score; C) ave=sum/4.0; D) cout< (11)有以下程序段 int n=0,p; do {cin>>p;n++;} while(p! =12345&&n<3); 此处do-while循环的结束条件是______。 A) p的值不等于12345并且n的值小于3 B) p的值等于12345并且n的值大于等于3 C) p的值不等于12345或者n的值小于3 D) p的值等于12345或者n的值大于等于3 (12)有以下程序 main() {int a=15,b=21,m=0; switch(a%3) {case 0: m++;break; case 1: m++; switch(b%2) {default: m++; case 0: m++;break; } } cout< } 程序运行后的输出结果是______。 A) 1 B) 2 C) 3 D) 4 (13)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是______。 A) void B) int C) float D) double (14)若有说明: int n=2,*p=&n,*q=p;,则以下非法的赋值语句是______。 A) p=q; B) *p=*q; C) n=*q; D) p=n; (15)有以下程序 float fun(int x,int y) {return(x+y); } main() {int a=2,b=5,c=8; cout< } 程序运行后的输出结果是______。 A) 9 B) 12 C) 9.0 D)8 (16)有以下程序 void fun(char *c,int d) {*c=*c+1;d=d+1; cout<<*c< } main() {char a=’A’,b=’a’; fun(&b,a);cout< } 程序运行后的输出结果是______。 A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b (17)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 void sort(int a[],int n) {int i,j,t; for(i=0;i for(j=i+1;j {if(a[i] t=a[i]; a[i]=a[j]; a[j]=t; } } main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=0;i<10;i++) cout< cout<<”“; } 程序运行后的输出结果是______。 A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7,6,5,4,9,10, D) 1,2,10,9,8,7,6,5,4,3, (18)有以下程序 int f(int n) {if (n==1) return 1; else return f(n-1)+1; } main() {int i,j=0; for(i=1;i<3;i++) j+=f(i); cout< } 程序运行后的输出结果是______。 A) 4 B) 3 C) 2 D) 1 (19)有以下程序 main() {char a[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’’}; int i,j; i=sizeof(a); j=strlen(a); cout< } 程序运行后的输出结果是______。 A) 9,9 B) 8,9 C) 1,8 D) 9,8 (20)以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。 void reverse(int a[],int n) {int i,t; for(i=0;i {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() {int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i<10;i++) s+=b[i]; cout< } 程序运行后的输出结果是______。 A) 22 B) 10 C) 34 D) 30 (21)有以下程序 main() {int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][i]; cout< } 程序运行后的输出结果是______。 A) 11 B) 19 C) 23 D) 20 (22)有以下程序 #include main() {char *p="abcdefghjik"; cout< } 程序运行后的输出结果是______。 A) 11 B) 15 C) 6 D) 5 (23)若w=1,x=2,y=3,z=4,则条件表达式w w: y y: z的值是。 A)4B)3C)2D)1 (24)下述程序段中,与其他程序段的作用不同。 C A)k=1;B)k=1; while (1){Repeat: s+=k;s+=k; k=k+1;if(++k<=100) if(k>100)break;gotoRepeat }cout< cout< C)intk,s=0;D)k=1; for(k=1;k<=100;s+=++k);do cout< while(++k<=100); cout< (25)下面程序的输出结果是。 main() {intx=9; for(;x>0;x--){ if(x%3==0){ cout<<--x; continue; } } } A)741B)852C)963D)875421 (26)下面程序的输出结果是。 main() {intk=0,m=0,i,j; for(i=0;i<2;i++){ for(j=0;j<3;j++) k++; k-=j; } m=i+j; cout<<“k=”< } A)k=0,m=3B)k=0,m=5C)k=1,m=3D)k=1,m=5 (27)下面程序的输出结果是。 main() {charch[7]=”12ab56”; inti,s=0; for(i=0;ch[i]>’0’&&ch[i]<=’9’;i+=2) s=10*s+ch[i]-‘0’; cout< } A)1B)1256C)12ab56D)ab (28)有以下程序 int a=3; main() {int s=0; {int a=5; s+=a++; } s+=a++; cout< } 程序运行后的输出结果是_______。 A) 8 B) 10 C) 7 D) 11 (29)有以下程序 void ss(char *s,char t) {while(*s) {if(*s==t) *s=t-’a’+’A’; s++; } } main() {char str1[100]="abcddfefdbd",c=’d’; ss(str1,c); printf("%s",str1); } 程序运行后的输出结果是______。 A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd (30)有以下程序 struct STU {char num[10]; float score[3]; } main() {struct STU s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s; int i; float sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; cout< } 程序运行后的输出结果是______。 A) 260.00 B) 270.00 C) 280.00 D) 285.00 (31)设有如下定义: struct sk {int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是______。 A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a (32)以下程序的输出结果是()。 #include intmain() {char*s="12134211"; intv1=0,v2=0,v3=0,v4=0; for(intk=0;s[k];k++) switch(s[k]) {default: v4++; case'1': v1++; case'3': v3++; case'2': v2++; } cout< } A.4,2,1,1B.4,9,3,1C.5,8,6,1D.8,8,8,8 (33)若有以下说明和定义 typedef int *INTEGER INTEGER p,*q; 以下叙述正确的是______。 A) p是int型变量 B) p是基类型为int的指针变量 C) q是基类型为int的指针变量 D) 程序中可用INTEGER代替int类型名 (34)以下能对二维数组a进行正确初始化的语句是。 A)inta[2][]={{1,0,1},{5,2,3}}; B)inta[][3]={{1,2,3},{4,5,6}}; C)inta[2][4]={{1,2,3},{4,5},{6}}; D)inta[][3]={{1,0,1},{},{1,1}}; (35)有以下程序 #include main() {char *p,*q; p=newchar[sizeof(char)*20]; q=p; cin>>p>>q; Cout< } 若从键盘输入: abc def<回车>,则输出结果是______。 A) def def B) abc def C) abc d D) d d (36)以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。 #include voidf(charp[][10],intn) { chart[20]; inti,j; for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); } } main() { charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"}; inti; f(p,5); cout< }程序运行后的输出结果是 A) 6 B) 4 C) 5 D) 3 二、填空题(每空2分,共30分) (1) 以下程序运行后的输出结果是_________。 200 main() {int x=10,y=20,t=0; if(x==y)t=x;x=y;y=t; cout< } (2) 以下程序运行后的输出结果是_________。 17 main() { intx=15; while(x>10&&x<50) { x++; if(x/3) {x++;break;} elsecontinue; } cout< } (3) 有以下程序: #include #include main() { charc; while((c=getchar())! ='? ') putchar(--c); } 程序运行时,如果从键盘输入: Y? N? <回车>,则输出结果为________。 X (4) 以下程序运行后的输出结果是_________。 2323 #include voidfun(intx,inty) {x=x+y;y=x-y;x=x-y; cout< voidmain() { intx=2,y=3; fun(x,y);cout< } (5) 以下函数的功能是计算s=1+1/2! +1/3! +……+1/n! ,请填空。 double fun(int n) {double s=0.0,fac=1.0; int i; for(i=1;i<=n;i++) {fac=fac _________;*i;fac=1/fac; s=s+fac; } return s; } (6) 下面程序的运行结果是: ________。 100010 #define N 10 #define s(x) x*x #define f(x) (x*x) main() {int i1,i2; i1=1000/s(N);i2=1000/f(N); printf("%d %d",i1,i2); } (7) 下面程序的运行结果是: __________。 53 void swap(int *a,int *b) {int *t; t=a;a=b;b=t; } main() {int x=3,y=5,*p=&x,*q=&y; swap(p,q); cout<<*p<<""<<*q; } (8) 下列函数sort实现对字符串按字典顺序由小到大排序,请填空。 #include voidsort(__________)//1char*s[],intn {char__________;//2*temp inti,j; for(i=0;i for(j=0;j if(strcmp(__________)//3(p[j],p[]j+1)>0 {temp=p[j]; __________;//4p[j]=p[j+1] p[j+1]=temp; } } intmain() { char*a[5]={"student","worker","cadre","soldier","apen"}; sort(a,5); for(inti=0;i<5;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习