您的当前位置:首页正文

南昌大学C语言07~08第一学期期末试卷A(提前)及答案

2022-05-16 来源:爱站旅游
导读南昌大学C语言07~08第一学期期末试卷A(提前)及答案
南昌大学 2007~2008学年第一学期期末考试试卷(提前)

试卷编号: ( A )卷 课程编号: H61050001 课程名称: C程序设计 考试形式: 闭卷 适用班级: 过控05 姓名: 学号: 班级: 学院: 专业: 考试日期: 2007-12-24

题号 题分 得分 考生注意事项:1、本试卷共10页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。 一 50 二 20 三 10 四 20 总分 100 累分人 签名 一、 单项选择题(每小题2 分,共 50 分,答案请写在答题卡) 得分 评阅人 1.C语言基本类型包括( ) A)整型、实型、逻辑型 B)整型、实型、字符型、逻辑型 C)整型、字符型、逻辑型 D)整型、实型、字符型 2.下列可正确表示字符型常量的是( ) A)”x” B)‟\\101‟ C) “\\n” D) \\97 3. 以下运算符中优先级别最低的是( ) A) || B) / C) , D) == 4.若有以下定义和语句: int u=010,v=0x10,w=10; printf(\"%d,%d,%d\\n\ 则输出结果是: A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10 5.请读程序: #include main() { int a; float b, c; scanf(\"%2d%3f%4f\ printf(\"\\na=%d, b=%f, c=%f\\n\若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是() 第 1 页 共 14页

A) a=98, b=765, c=4321 B) a=10, b=432, c=8765 C) a=98, b=765.000000, c=4321.000000 D) a=98, b=765.0, c=4321.0 6.已知各变量的类型说明如下: int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合C语言语法的表达式是( ) A) x%(-3) B) w+=-2 C) k=(a=2,b=3,a+b) D) a+=a-=(b=8)*(a=3) 7.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的达式是( )。 A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=2l0) B)(x>=1)||(x<=10)||(x>=200)||(x<=210) C)(x>=1)&&(x<=10)||(x>=200)&&(x<=2l0) D)(x>=1)||(x<=10)&&(x>=200)||(x<=210) 8.执行下面程序中的输出语句,a的值是 main() { int a; printf(\"%d\\n\} A) 65 B) 20 C) 15 D) 10 9.逻辑运算符两侧运算对象的数据类型( )。 A)只能是0或l B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是C的任何类型的数据 10.有一函数,当x>0 y=1, x=0 y=0, x<0 y= -1,下列不能正确根据x计算出y 的是( ) A)if (x>0) y=1 B) y=0 else if (x==0) y=0; if (x>0) y=1; else y= -1; else if (x <0) y= -1; C) y=0; D)if (x>=0) if (x>=0) ; if (x>0) y=1; if (x>0) y=1; else y=0; else y= -1 else y= -1 11.若执行以下程序时从键盘上输入9, main() { int n; scanf(\"%d\ if(n++<10) printf(\"%d\\n\ else printf(\"%d\\n\} 则输出结果是( ) A)11 B)10 C)9 D)8 12. 设变量已正确定义,则以下能正确计算f = n!的程序段是 ( ) A) f=0; B) f=1; for(i=1;i<=n;i++) f*=i; for(i=1;i1;i++) f*=i; for(i=n;i>=2;i--) f*=i; 13.有以下程序 第 2 页 共 14页

main() { int k=5,n=0; while(k>0) { switch(k) { default : break; case 1 : n+=k; case 2 : case 3 : n+=k; } k--; } printf(\"%d\\n\ } 程序运行后的输出结果是( ) A) 0 B)4 C) 6 D)7 14.有以下程序 main() { int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) { a+=5; continue;} a-=3; } printf(\"%d\\n\} 程序运行后的输出结果是 ( ) A)3 B)4 C)5 D)6 15.有以下程序 main() { int num[4][4]={{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=1;j<=i;j++) printf(\"%4c\ „); for(j=_____;j<4;j++) printf(\"%4d\); printf(\"\\n\"); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是( ) A) i-1 B)i C) i+1 D) 4-i 16.以下程序的输出结果是 main() { int n[3][3] , i, j; 第 3 页 共 14页

for ( i=0; i<3; i++ ) for ( j=0; j<3; j++ ) n[i][j]=i+j; for ( i=0; i<2; i++ ) for ( j=0; j<2; j++ ) n[i+1][j+1]+= n[i][j]; printf(“%d\\n”,n[i][j]); } A)14 B)0 C)6 D)值不确定 17.若有以下说明和语句,则输出结果是( ) char str[]=\"\\\"c:\\\\abc.dat\\\"\"; printf(\"%s\A)字符串中有非法字符 B).\\\"c:\\\\abc.dat\\\" C)\"c:\\abc.dat\" D)\"c:\\\\abc.dat\" 18.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( ) 。 A) n=(n*100+0.5)/100.0 B)m=n*100+0.5 ,n= m/100.0 C) n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 19.请读程序: #include f(int b[], int n) { int i, r; r=1; for(i=0; i<=n; i++) r=r*b[i]; return r; } main() { int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf(\"%d\\n\ } 上面程序的输出结果是 ( ) A) 720 B) 120 C) 24 D) 6 20.以下程序的输出结果是( ) 。 # include fun ( int a , int b , int m ) { m = a * b ; return ; } main ( ) int m = 1; fun ( 2 , 3 , m ) ; printf ( “ %d \\n” , m ) ; } A) 1 B) 2 C) 3 D) 6 21.已知int *p,a;则语句 p=&a;中的运算符&的含义是( ) A)位与运算 B)逻辑与运算 C)取指针内容 D)取变量地址 22.当调用函数时,实参是一个数组名,则向函数传送的是 ( ) A)数组的长度 B)数组的首地址 C)数组每一个元素的地址 D)数组每个元素中的值 23.以下叙述中不正确的是 ( ) A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 B)在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容 C)在C中,外部变量的隐含类别是自动存储类别 D)在C中,函数形参可以说明为register变量 第 4 页 共 14页

24.有以下函数 fun(char *a,char *b) { while((*a!=„\\0„)&&(*b!=„\\0„)&&(*a==*b)) { a++; b++;} return (*a-*b); } 该函数的功能是 ( ) A)计算a和b所指字符串的长度之差 B)将b所指字符串复制到a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小 25.有以下程序 main() {char s[]=\"ABCD\ for(p=s+1;p20) break;} while(a=14); } 第 5 页 共 14页

2.以下程序的输出结果是 main() { int n[3][3] , i, j; for ( i=0; i<3; i++ ) for ( j=0; j<3; j++ ) n[i][j]=i+j; for ( i=0; i<2; i++ ) for ( j=0; j<2; j++ ) n[i+1][j+1]+= n[i][j]; printf(“%d\\n”,n[i][j]); } 3. 以下程序的输出结果是 main() {int i,j; for(j=1;j<=4;j++) { for(i=4;i>=j;i--) printf(\" \"); for(i=1;i<=2*j-1;i++) printf(\"*\"); printf(\"\\n\"); } for(j=1;j<=3;j++) {for(i=0;i<=j;i++) printf(\" \"); for(i=1;i<=2*(4-j)-1;i++) printf(\"*\");printf(\"\\n\"); } } 4. 以下程序的输出结果是 int m=13; int fun2(int x, int y) { int m=3; return(x*y-m); } main() { int a=7, b=5; printf(\"%d\\n\} 5.以下程序的输出结果是 #include\"string.h\" main() { char p[20]={'1','2','3','4'},*q=\"Hello!\\0boys\\0and\\0girls!\"; printf(\"ch=%c,\ printf(\"%d\\n\} 第 6 页 共 14页

三、填空题(每空 2分,共 10 分,答案写在答题卡上) 得分 评阅人 1. 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include main() { int a, b, c, i; a=c=0; for(i=0;i<10;i+=2) { a+=i;{ 【1 】 ;} c+=b; } printf(\"偶数之和=%d\\n\ printf(\"奇数之和=%d\\n\ } 2.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf(\"Enter mark:\\n\");scanf(\"%f\",&a); while(a>=0.0&& n<1000) { sum+= 【2 】; x[n]= 【3 】 ; n++; scanf(\"%f\",&a); } ave= 【4 】 ; printf(\"Output:\\n\"); printf(\"ave=%f\\n\",ave); for (i=0;i答 题 卡 一、单项选择题(每小题2分,共50分) 得分 评阅人 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 二、程序阅读题(每题4 分,共20 分) 得分 评阅人 1. 2. 3. 4. 5. 第 8 页 共 14页

三、 填空题(每空2 分,共 10 分) 得分 评阅人 1 2 3 4 5 四、程序设计题 (每题10 分,共 20 分) 得分 评阅人 1、

第 9 页 共 14页

2、

第 10 页 共 14页

南昌大学 2007~2008学年第一学期期末考试试卷(A卷) (提前考试试卷) 答 题 卡 一、选择题(每题2分,共50分) 得分 评阅人 1 6 11 16 21 D A B C D 2 7 12 17 22 B C D C B 3 8 13 18 23 C B D B C 4 9 14 19 24 A D B B D 5 10 15 20 25 C C B A D 二、程序阅读题题(每题4 分,共20 分) 得分 评阅人 1. 2. 3. 4. 5. a=12 y=12 a=16 y=28 6 * *** ***** ******* ***** *** * 2 ch=1,6 第 11 页 共 14页

四、 填空题(每空2 分,共 10 分) 得分 评阅人 1 2 3 4 5 b=i+1 a a sum/n (x[i]四、程序设计题 (每题10 分,共 20 分) 得分 评阅人 1、 #include\"stdio.h\" main() { char from[80],to[80]; (2分) int i; (1分) printf(\"\\n input string1:\"); scanf(\"%s\ (或gets(from);) (2分) for(i=0;i<=strlen(from);i++) to[i]=from[i];to[i]=‟\\0‟; (5分) printf(\"copied string is:%s\或puts(to);) (1分) } 第 12 页 共 14页

2、main() { int i,j,uppn,lown,dign,span,othn; char text[3][80]; (1分) uppn=lown=dign=span=othn=0; (1分) for(i=0;i<3;i++) { printf(\"input %d line:\\n\ gets(text[i]); (3分) for(j=0;j<80&&text[i][j]!='\\0';j++) { if(text[i][j]>='A'&&text[i][j]<='Z')uppn++; else if(text[i][j]>='a'&&text[i][j]<='z') lown++; else if(text[i][j]>='0'&&text[i][j]<='9') dign++; else if(text[i][j]==' ') span++; else othn++; } (3分) printf(\"upper letter:%d\\n\printf(\"lower letter:%d\\n\printf(\"digital: %d\\n\printf(\"space %d\\n\printf(\"other %d\\n\ (2分) } } 第 13 页 共 14页

第 14 页 共 14页

因篇幅问题不能全部显示,请点此查看更多更全内容