试卷编号: ( 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 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;i 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 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;p 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 三、 填空题(每空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] 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页 因篇幅问题不能全部显示,请点此查看更多更全内容20) break;} while(a=14); } 第 5 页 共 14页