当前位置:首页 > C语言期末考试题及答案4
装 线 订 : 院 装学 线: 级 年 订 装 : 线业 专 订 : 名 装 姓 线 : 号 订学 装 封
课程考试试卷 2011 ~ 2012学年 秋季学期 考试时间: 2012.1 密 课程名称C语言程序设计 A卷■ B卷□ 题号 一 二 三 四 五 六 七 八 九 十 成绩 复核 得分 线 阅卷 注意事项:答卷前,考生务必把答题纸上密封线内各项内容填写清楚并且填写在密封线与装 订线之间(学号应与教务在线中学号相同),否则可能得不到成绩。答案必须写在边框内。 封 得分 一、选择题(本题共 30 分)请将选项填入下表 1 2 3 4 5 6 7 8 9 10 密 11 12 13 14 15 1.程序的3种基本控制结构是 。 A)顺序,转移,选择 B)选择,I/O,递归 线C)循环,选择,顺序 D)循环,递归,子程序 2.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量C中 的大写字母转换为小写字母的语句是___ ___。 A)c=(C-?A?)&+?a? B)c=C+32 C)c=C-?A?+?a? D)c=(?A?+C)&-?a? 封 3.如果x,y均为int型,z为double型,以下各项中不合法的scanf函数调用是______。 A)scanf(\ B)scanf(\ C)scanf(\ D)scanf(\ 密4.若x为int型变量,则执行下列语句后x的值是______。 x=6; x+=x-=x*x; 线A)-60 B)50 C)-24 D)-30 5.若变量均已正确定义并赋值,以下合法的C语言赋值语句是______。 A) x=y= =5; B) x=n%2.5; C) x+n=i; D) x=5=4+1; 6.执行下列程序段后,变量a的值为 。 封 A)15 B)0 C)1 D)16 int a=15,b=-1; a=a+b&&a; 密7.已知int x=1,y=2,z=3;则z+=x>y?++x:++y的值是 。 A)2 B)4 C)3 D)6 8.有定义语句:int a=1,b=2,c=3,x;则以下选项中各程序段执行后,x值不等于3的是 。 A)if(c 10.调用函数时,如果实参是一个数组名,则向函数传送的是 。 A)数组的长度 B)数组的首地址 C)数组中每个元素的地址 D)数组中每个元素的值 11.以下叙述中错误的是 。 A)全局变量的作用域是从定义位置起至整个源文件结束止 B)局部变量的作用域是从定义位置至函数体(复合语句)结束止 C)同一程序中全局变量的作用域一定比局部变量大 D)变量的作用域取决于变量定义语句出现的位置 12.设函数fun的定义形式为void fun(char ch, float x) {?},则以下对函数fun的调用语句中,正确的是 。 A)fun(“abc”,3.0); B)t=fun(“D”,16.5); C)fun(?65?,2.8); D)fun(?a?,32.0); 13.说明语句如下:int a[10]={1,2,3,4,5,6,7,8,9,0},*p=a,i;已知0<=i<10,则对a数组中元素的不正确引用方法是 。 A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i)) 14.以下对结构体变量stu1中成员age的非法引用是 。 struct student { int age; int num; }stu1,*p; p=&stu1; A)stu1.age B)student1.age C)p->age D)(*p).age 15.有以下语句: typedef struct TT {char c; int a[4]; }CIN;则下列叙述正确的是 。 A)可以用TT定义结构体变量 B)TT是struct类型的变量 C)可以用CIN定义结构体变量 D)CIN是struct TT类型的变量 得分 二、输出结果(本题共 27 分) 1.设已定义整形变量k和g,则下面的程序输出为( )。 k=017;g=111; printf(“%d ”,++k); printf(“%x\\n”,g++); 2.以下程序的运行结果是( )。 main() else if(!b) if( !c) x=15; 第2页,共8页 装 封 else x=25; printf(“%d\\n”,d); } 7.以下程序的运行结果是( )。 线 订 : 院 装学 线: 级 年 订 装 : 线业 专 订 : 名 装 姓 线 : 号 订学 装 密 } 3.以下程序的运行结果是( )。 main() 线{int i=0; while(1) { printf(“*”); 封 i++; if(i<3) break; } printf(“\\n”); 密 } 4.以下程序的运行结果是( )。 main() 线{ int x=1,y=2,z=3; do { switch(y++) { 封 case 1: x++; break; case 3: x+=3;break; default: x=x%2;continue; 密 } z++; }while(y<5); 线 printf (\ %d %d\ } 5.以下程序的运行结果是( )。 int fun(int x, int y) 封 { return x > y ? x : y; } main() { int a=2,b=5,c=8; 密 printf(\ } 6.以下程序的运行结果是( )。 main() 线 { int a=10; { int a=15; printf(“a.1=%d,”,a); 封 } printf(“a.2=%d\\n”,a); 密第3页,共8页 void Func(void); main() { int i; for (i=0; i<5; i++) Func( ); } void Func(void) { static int a = 1; int b = 2, c; c = a + b; a++; b++; printf(\} 8.以下程序的运行结果是( void fun1(int x) { x=20; } void fun2(int b[4]) { int j; for(j=0; j<4; j++) b[j]=j; } main() { int x = 10; int a[4] = {1,2,3,4}, k; fun1(x); printf(\ fun2(a); for(k=0; k<4; k++) printf(\ } 9.以下程序的运行结果是( void Fun(int *y) { printf(\ *y = 20; printf(\ } main() { int x = 10; printf(\ 第4页,共8页 )。。 ) 装 线 订 : 院 装学 线: 级 年 订 装 : 线业 专 订 : 名 装 姓 线 : 号 订学 装 封 Fun(&x); printf(\密 } 得分 三、填空题(本题共 24 分) 线 1.以下程序实现输出x,y和z三个数中的最大者,请填空。 main( ) 封{int x=4,y=5,z=7; int ; if ( ) u=x; else u=y; 密 if( ) v=u; else v=z; printf(“v=%d”,v); 线} 2.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。 main() { int i,j,row=0,colum=0,max; 封 int a[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}}; ; for(i=0;i<=2;i++) 密 for(j=0;j<=3;j++) if(a[i][j]>max) { max=a[i][j]; 线 ; ; } printf(“max=%d,row=%d,colum=%d\\n”,max,row,colum); 封 } 3.以下程序用来求数组全部元素的和,请填写缺少的语句。 main( ) 密{ int a[ ]={0,1,2,3,4,5,6,7,8,9}; int s=0 , i, *p; p= ; for (i=0; i<10; i++) ; 线 printf(\ } 4.以下程序的作用是输出100以内能被3整除并且个位数为6的所有整数,请填空。 封main() {int i,j; 密第5页,共8页 for(i=0; ;i++) { j=i*10+6; if( ) continue; printf(“%d”,j); } } 5. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。 unsigned int MyStrlen(char str[]) { unsigned int len = 0, i; for (i=0; str[i]!= ; i++) len= ; return len; } 得分 四、编程题(本题共 19 分) 1.编程求1+3+5+……+99。 2.买卖提将养的一缸金鱼分五次出售:第一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。问原来的鱼缸中共有几条金鱼? 3.从键盘任意输入10个不相同的整数,然后输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!” 4.编写程序求一个3×3的整型矩阵对角线元素之和。 2011年C语言参考答案 一、选择题 1C 2D 3D 4A 5A 6C 7D 8C 9A 10B 11C 12D 13D 14B 15C 二、输出结果题 1、16 6f 2、20 3、* 4、0 5 4 5、10 6、a.1=15,a.2=10 7、34567 8、x=10,0123 9、x=10,*y=10,*y=20,x=20 三、填空题 1、u,v, x>y, u>z 2、max=a[0][0], row=i, colum=j 3、a, s+=*(p+i) 4、i<=9或i<10 j%3或j%3!=0 5、‘\\0’ len+1 四、编程题 1、#include for(i=1;i<100;i+=2) sum+=i; 第6页,共8页 装 线 订 : 院 装学 线: 级 年 订 装 : 线业 专 订 : 名 装 姓 线 : 号 订学 装 封 printf(“sum=%d\\n”,sum); return 0; 密 } 3、#include 线{ int a[10],i,x; for(i=0;i<10;i++) scanf(“%d”,&a[i]); scanf(“%d”,&x); 封 for(i=0;i<10;i++) if(x==a[i]) break; if(i<10) printf(“Found!\\n”); 密 else printf(“Not Found!\\n”); return 0; } 线4、#include { int a[3][3],i,j,sum=0; (该程序直接对数组初始化也可) for(i=0;i<3;i++) 封 for(j=0;j<3;j++) scanf(“%d”,&a[i][j]); for(i=0;i<3;i++) 密 for(j=0;j<3;j++) if(i= =j) sum+=a[i][j]; printf(“sum=%d\\n”,sum); 线return 0; } 封 密 线 封 密第7页,共8页 2、#include { float x,y=11.0; int i; for(i=5;i>1;i--) {x=(y*i+1)/(i-1); y=x; } printf(\return 0 ; }?? 第8页,共8页
共分享92篇相关文档