山东建筑大学C语言程序设计历年统考试题集.doc_第1页
山东建筑大学C语言程序设计历年统考试题集.doc_第2页
山东建筑大学C语言程序设计历年统考试题集.doc_第3页
山东建筑大学C语言程序设计历年统考试题集.doc_第4页
山东建筑大学C语言程序设计历年统考试题集.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言程序设计试题集(第1套)请将第一、二、三、四题的答案写在答题页的相应题目的后面(写在别处不得分)。一、单项选择题(每题2分,共20分)1、以下叙述不正确的是a) c程序由函数构成b) 一个c程序至少包含一个main函数c) main函数可以调用main函数d) main函数是每个程序执行的起始点2、c程序中能直接让机器执行的文件是a)编辑后的.c源文件b)通过编译的.obj文件c)通过连接的.exe文件d)编辑后的.bak文件3、假设定义变量如下:int x;float y;以下输入语句中哪个是正确的?a)scanf(“%f%d”,&y,&x);b)scanf(“%f%d”, y, x);c)scanf(“%f%f”,&y,&x);d)scanf(“%d%d”,&y,&x);4、已知:int a3=1,2,3,4,5,6;则数组a的第一维的大小是a)2b)3c)4d)无确定值5、.如果switch表达式是char 变量code,下面哪一个case子句是合法的。a)case “3”:b) case 3: c)case 3 : d)case =3:6、能正确表示”x的值在1,10和200,210范围内”的表达式是a)(x=1)&(x=200)&(x=1) | (x=200) | (x=1)&(x=200)&(x=1) | (x=200) | (x5)printf(“#”);printf(“$”);输出(2)3、for( sum=j=0; j=10; +j) sum += j; 循环结束后sum的值等于(3)4、长度为10的int类型数组和长度为3 的double类型数组,哪一个数组占用的内存空间多(4)5、字符数组a)char a=“one”;占多少内存字节(5)6、如果chz,那么,表达式ch=a& ch=z的值是(6)7、编写c语句,交换a、b的值(7)8、为了使用库函数getchar(),必须在程序中包含命令(8)9、设int numbers5=17,25,30,56,58;编写c的for语句,将数组numbers中的每个元素减去3。使用变量i跟踪下标。(9)10、设有函数定义:设有函数定义:int max(int ,int ) int ; ?; return(); 语句printf(“%d”, max(max(2,3),4);输出什么?(10)三、阅读下列程序,写出运行结果(每题5分,共20分)1、 #includevoid main() char a=a;printf(“%cn,a+ 32);2、#includevoid main() int x=3,y; if(x0)y=1; else y=0; printf(“x=%d,y=%dn”,x,y); 3、#include void main() int f1,f2; int j; f1=1;f2=1; for(j=1; j=4; j+) printf(%d %d ,f1,f2); f1=f1+f2; f2=f2+f1; 4、#include void main() int a23 = 1,2,3,4,5,6; int b32, i,j; for(i=0;i2;i+) for(j=0;j3;j+) bji = aij; printf(array b:n); for(i=0;i3;i+) for(j=0;j2;j+)printf(%5d,bij); printf(n); 四、编写程序 (共30分,每题10分)认真阅读题目,按要求编写完整的c语言程序。并输入turbo c语言编程环境进行调试,运行,将调试结果写在答题页程序的后面(有输入数值的话,写明输入)。1、从键盘上输入两个整数,比较两个数的大小,并输出较大者2、编写程序,打印如下图案: * * * * *3、编写程序,求一维数组中最大元素,数据自定。答题页一、单项选择题(每题2分,共20分)12345678910二、填空题(每空3分,共30分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)三、阅读下列程序,写出运行结果(每题5分,共20分)1234四、编写程序 (共30分,每题10分)1程序:2程序:3程序:参考答案:一、 单项选择题(每题2分,共20分)(1)(5)ccaab(6)(10)cabbd二、填空题(每空3分,共30分)(1) a=3, b=3(2) #$(3) 55(4) double类型数组(5)4(6) 0(7) t=a;a=b;b=t;(8) #include(9)for(i=0;i5;+i)numbersi-=3;(10)4三、阅读下列程序,写出运行结果(每题5分,共20分)1、 a2、 x=3,y=13、 1 1 2 3 5 8 13 214、 array b:1 4 2 53 6四、根据题目要求编写完整程序(共30分,每题10分)1、#includevoid main() float f1,f2,t; scanf(%f%f,&f1,&f2);if(f1f2)printf(%fn,f1);else printf(%fn,f2);2、#includevoid main() int a,b;for(a=1;a=5;+a) for(b=1;b=a;+b) printf(*);printf(“n”);3、#includevoid main() int i,a10,sum; for(i=0;i10;+i)scanf(“%d”,&ai);sum=a0; for(i=1;isum)sum=ai; printf(“sum=%dn”,sum);c语言程序设计试题集(第2套)请将第一、二、三题的答案写在第三题后面的三个答题框中(答在别处不得分)。第四题的答案写在相应题目的后面。一. 单项选择题(30分,每题2分)请选择a,b,c,d四个选项中的唯一的一个正确答案,然后将正确答案的标号(a或b或c或d),填在答题框中相应题号的括号内。答在别处不得分。1.用c语言编写的代码程序_。 a、可立即执行 b、是一个源程序 c、经过编译即可执行 d、经过编译解释才能执行 2. c语言中用于结构化程序设计的三种基本结构是_。a、 顺序结构、选择结构、循环结构 b、 if、switch、breakc、 for、while、do-while d、 if、for、continue3. 以下选项中合法的实型常数是_。a、5e2.0 b、 e-3 c、 .2e0 d、 1.3e4. 假定x和y为 double型,则表达式x=2,y=x+3/2的值是_。a、 3.500000 b、 3 c、 2.000000 d、 3.0000005. ch是字符型变量,下面不正确的赋值语句是_。a、ch = 65;b、 ch=a; c、 ch = n;d、 ch= 9+ 0;6. 下列有关c语言程序书写格式的说法哪个是错误的?a、 c程序的书写格式比较自由,一个语句可以占多行,一行也可以有多个语句。b、 c语句必须要有分号。c、 c语言程序的标识符必须使用小写字母。d、 用 括起来的部分,通常表示了程序的某一层次结构,称为块。7.下面程序段所表示的数学函数关系是_。x= -1;if (a!=0)if (a0) x=1;else x=0; -1 (a0) 1 (a0) 0 (a0)0 (a0) -1 (a0) 0 (a0)8. 以下关于do-while循环的不正确描述是_。 a) do-while的循环体至少执行一次 b) do-while的循环体可以是复合语句 c) 在do-while循环体中,一定要有能使while后面表达式的值变为零(假)的操作 d) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号9. 以下程序执行后sum的值是_。a) 15 b) 14 c) 不确定 d) 0 main() int i , sum=0; for(i=1;i6;i+) sum+=i; printf(%dn,sum); 10.若有说明语句:int a3=1,2,3,4,5,6; 则a数组第一维的大小是 。 a. 1 b. 2 c.3 d. 无确定值11. c语言允许函数值类型的缺省定义,此时该函数值隐含的类型是_。a、float型 b、long型 c、int型 d、double型12.下面正确的函数定义形式为a、double fun(int x;int y) b、double fun(int x,int y); c、double fun(int x,y) d、double fun(int x,int y)13.以下程序运行后,输出结果是_。#define add(x) x+xmain( ) int m=1, n=2, s=3;s=s+add(m+n); printf(s=%dn, s);a、s=8b、s=9c、s=6d、s=1814. 若有定义:int x , *p ; 则以下正确的赋值表达式是a、p=&x b、 p=x c、*p=&x d、 p=*x15.以下变量a,b,c均为double型且已正确赋值,不能正确地表示数学式子的c语言表达式是 a、2*(1/(a*b*c) b、 2/a*b*c c、 2/a*1/b*1/c d、 2/a/b/c二. 程序填空题(20分,每空2分) 将答案写在答题框中。答在别处不得分。1. 以下程序的功能是:输入三个整数n1、n2、n3,将最大的数输出。请填空。main( ) int n1, n2, n3, temp; scanf(%d%d%d, &n1, &n2, &n3); if (n2n3) temp=n2; n2=n3; n3=temp; if (n1n2) temp=n1; ; ; printf(%dn, n1);2. 编写打印整数110的平方的函数。请填空。main ( ) int i ;for ( i=1; i ; i+ +)printf (“%dn”, square( i);square ( int n)return ( ); 3.求数组所有元素累加和。请填空。main()int sum,i,j,k,a222=1,2,3,4,5,6,7,8; sum= ; for(i=0;i2;i+) for(j=0;j2;j+) for(k=0;k2;k+) sum= ; printf(%d,sum);4.以下程序的功能是调用函数fun计算:m= 1-2+3-4+9-10,并输出结果。请填空。 int fun (int n ) int m=0, f=1, i; for (i=1; i=n; i+ +) m+= ;f= ;return m;main ( )printf (“ m=%dn”, fun (10 ) ) ; 5.将以下含有switch语句的程序段改写成对应的含有嵌套if语句的程序段,请填空。含有switch语句的程序段:int s, t, m;t=(int)(s/10);switch( t ) case 10: m=5; break; case 9: m=4; break; case 8: m=3; break; case 7: m=2; break; case 6: m=1; break; default: m=0;含有嵌套if语句的程序段:int s, m;if (s110) m=0;else if (s70) m=1; else if (s80) m=2; else if (s90) m=3; else if (s100) ; else ;三.程序运行结果题(20分,每题4分) 阅读下列各程序,将程序编译、运行输出的结果写在答题框中。答在别处不得分。1. 写出程序运行的结果: main ( )int a=2,b=3;float x=3.5,y=2.5,p;p=(float)(a+b)/2+(int)x%(int)y;printf(p=%fn, p); 2. 写出程序运行的结果:main ( )int i,j;i=3;j=6;printf(%d,%dn, i+,j-);printf(%d,%dn, + i,- j); 3. 写出程序运行的结果: main() int number=0; while(number=1) printf(“*%d,”,number); number+; printf(“*%dn”,number);4. 写出程序运行的结果: main() char s=abcdefg; int i; for(i=1;i7;i+=2) printf(%c,si); 5 写出程序运行的结果: int ast ( int x , int y , int *cp , int * dp ) *cp = x+y ; *dp = x-y ; main() int a=4 , b=3 , c , d ; ast( a , b , &c ,&d ) ; printf(%d%dn , c , d ) ; 四.程序设计题(30分,每题10分)认真阅读题目,按要求编写完整的c语言程序。并输入turbo c语言编程环境进行调试,运行,将调试结果写在答题页程序的后面(有输入数值的话,写明输入)。参考知识:c语言数的范围:int型和short型为-3276832767,long型为-21474836482147483647,单精度实数为-3.410-383.41038(7位有效数字),双精度实数为-1.710-3081.710308(15位有效数字),长双精度实数为-1.210-49321.2104932(18位有效数字)。1.输入一个华氏温度f,然后计算,最后输出对应的摄氏温度c。换算公式为: c=5*(f-32)/9要求输出保留2位小数。2.已知 x (x1) y= 2x-1 (1=x=10)用scanf函数输入x的值,求y值。3编写一个循环结构的程序,求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的值。 答题页一单项选择题答题框1( ) 6( ) 11( ) 2( ) 7( ) 12( ) 3( ) 8( ) 13( ) 4( ) 9( ) 14( ) 5( ) 10( ) 15( ) 二程序填空题答题框 三程序运行结果题答题框1运行结果是:2运行结果是:3运行结果是:4运行结果是:5运行结果是:四、程序设计题(30分,每题10分)1程序:2程序:3程序:本套题的参考答案:一 单项选择题(30分,每题2分) 1b 6c 11c2a 7c 12d 3c 8d 13b4d 9a 14a5b 10b 15b 二 程序填空题(20分,每空2分) n1=n2 n2=temp =10 n * n 0 sum+aijk i*f f m=4 m=5 三 程序阅读题(20分,每题4分) 1 p=3.500000 2 3,6 3 *0,*1,*2 4 bdf 5 71 5,4 四1. 本题10分。main() float c,f; printf(input f=); scanf(%f,&f); c=5*(f-32) /9; printf(c=%.2fn,c); 2.本题10分。 main() float x,y; scanf(%f,&x); if(x=10) y=3*x-11; else y=2*x-1; printf(%fn, y); 3.本题10分。main() int i;long t=1; long s=0; for(i=1;i=10;i+) t=t*i; s+=t; printf(1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=%ld, s);c语言程序设计试题集(第3套)请将第一、二、三、四题的答案写在答题页的相应题目的后面(写在别处不得分)。一、单项选择题(每题2分,共20分)1、下列语言中,cpu能直接识别的是a)自然语言 b) 高级语言 c) 汇编语言 d)机器语言2、以下所列的c标识符中,错误的是a)examp1 b)rs686 c) 2mix d) first_exam3、下面哪个是不合法的赋值语句a)x+=2; b)x=y=z=0; c)x+y=z; d)m+=m/=2;4、设int age,count; double price,weight; 下面哪个语句是正确的a)scanf(“%lf”,&price);b)scanf(“%d”,age);c)printf(“%d”,&count);d)printf(“%d”,weight);5、下面哪一项不是程序的控制结构?a)循环 b)选择 c)顺序 d)排序6、指出下面语句的执行结果if(53)printf(“*”);else if(7=8)printf(“&”);else printf(“$”);a)* b)& c)$ d)以上全不是7、选出最佳答案s=0;for(j=0;j5;+j)s=2*s+j;s最后的值是什么?a)11 b)4 c)26 d)228、下面哪一项是对函数void display(void);的调用?a)call display(); b) display(); c) display() d) display;9、下面哪个说法是错误的?a) 数组中的所有元素具有相同的名称b) 数组中的所有元素具有相同的数据类型c) 数组中的所有元素具有相同的下标d) 数组中的元素在内存是连续存放的10、二维数组的第一个元素的行下标和列下标是a)0,0 b)0,1 c)1,0 d)1,1二、填空题(每空2分,共20分)1、编写c表达式:b2-4ac(1)2、编写c语句,声明int变量来存储4个整数(2)3、假定int x=5,y;,在执行语句“y=x+;”后,x,y的值是(3)4、将复合赋值语句x*=5-z;写成等效的简单赋值语句(4)5、编写c语句,该语句显示12.3的平方根(5)6、编写c语句,如果gender是m,那么输出male(6)7、假设输入:38 45 71 4 1,下面代码的输出是什么?(7)sum=0;scanf(“%d”,&num);while(num!=-1)sum+=num;scanf(“%d”,&num);printf(“%d”,sum);8、为了使用库函数sqrt(),必须在程序中包含命令(8)9、设int numbers5=17,25,30,56,58;编写c的while语句,将数组numbers中的每个元素减去数字3。使用变量i跟踪下标,假设变量的初值为0。(9)10、设有函数定义:设有函数定义:int s(int one) int j;int p=1;for(j=1;j=3;+j)p=p*one;return p;语句printf(“%d”,s(2);输出什么?(10)三、程序分析填空题(每空3分,共30分)1、 从键盘输入一个大写字母,要求改用小写字母输出。#includevoid main()char a;printf(“请输入一个大写字母:”);a = getchar();printf(“对应的小写字母是:%c, (1));2、判断是否是闰年,闰年的条件:能被4整除而不能被100整除,或能被400整除的公元年。#include void main() int year, leap; scanf(%d,&year); if ((2))leap=1; else leap=0; if (leap) printf(%d is ,year); else printf(%d is not ,year); printf(a leap year.n);3、求1到100的和#include void main() int i,sum;(3) do sum=sum+i; (4); while(i=100); printf(%dn,sum);4、打印fibonicci数列前20项:1,1,2,3,5,8数学表示:f(0)=f(1)=1, f(n)=f(n-2)+f(n-1)#include void main()int f20=(5); for(i=2 ; i20 ; i+)(6); for(i=0 ; i20 ; i+) printf(“%10d”,fi);5、有一个34的矩阵,要求编程序以求出其中值最大元素及其所在的行号和列号。#include void main () int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max = a00; for(i=0; (6); i+) for(j=0; (7); j+) if (aij max ) max = aij; row = (8); colum =(9); printf(max=%d, row=%d, colum=%dn,max,row,colum);6、在主函数中输入一个整数,调用函数isprime()判是否素数并输出相关信息。# include # include int isprime( int ) ;void main() int m;printf(please enter a number:);scanf(%d,&m);if ((10)) printf(“%d is a primen“,m); else printf(“%d is not a primen“,m); int isprime( int m) int i; for(i=2;i=sqrt(m);+i)if(m%i=0)return 0; return 1;四、编写程序(每题10分,共30分)认真阅读题目,按要求编写完整的c语言程序。并输入turbo c语言编程环境进行调试,运行,将调试结果写在答题页程序的后面(有输入数值的话,写明输入)。1、从键盘上输入两个单精度型实数f1,f2,然后交换它们的值,最后输出f1和f2。2、任意输入三个整数,要求按从大到小的顺序输出。3、计算12-22+32-42+472-482+492-502答题页一、单项选择题(每题2分,共20分)12345678910二、填空题(每空2分,共20分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)三、程序分析填空题(每空3分,共30分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)四、编写程序(每题10分,共30分) 1程序:2程序:3程序:参考答案:一、单项选择题(每题2分,共20分)(1)(5)dccad(6)(10)ccbca二、填空题(每小题2分,共20分)(1)b*b-4*a*c(2)int a,b,c,d;(3)6,5(4)x=x*(5-z)(5)printf(“%f”,sqrt(12.3);(6)if(gender=m)printf(“male”);(7)158(8)#include(9)while(i5)numbersi-=3;i+;(10)8三、程序分析填空题(每空3分,共30分)1、 a+322、 year%4=0&year%100!=0|year%400=03、 i=1,sum=0;4、 +i;5、 1,16、 i37、 j48、 i9、 j10、isprime(m)四、编程(每题10分,共30分)1、#includevoid main() float f1,f2,t; scanf(%f%f,&f1,&f2); t=f1;f1=f2;f2=t; printf(%f,%fn,f1,f2);2、#includevoid main() int a,b,c,t;scanf(%d%d%d,&a,&b,&c);if(ab)t=a;a=b;b=tif(ac)t=a;a=c;c=tif(bc)t=b;b=c;c=tprintf(“%d,%d,%dn”,a,b,c);3、#includevoid main() int i,s=1; float sum=0; for(i=1;i=50;+i) sum+=s*i*i; s=-s; printf(“sum=%.0fn”,sum);c语言程序设计试题集(第4套)请将第一、二、三题的答案写在第三题后面的三个答题框中(答在别处不得分)。第四题的答案写在相应题目的后面。一、单项选择题(45分,每题3分)请选择a,b,c,d四个选项中的唯一的一个正确答案,然后将正确答案的标号(a或b或c或d),填在答题框中相应题号的括号内。答在别处不得分。1.构成一个c程序的是_。a、一个主函数和若干个非主函数 b、 若干个主函数和若干个非主函数c、 一个主函数和最多一个非主函数d、 若干个主函数和最多一个非主函数2以下选项中合法的字符常量是_。a、b b、 b c、68 d、 b3. 在c语言中,不合法的实数是_。a、1.23 b、 e-5 c、 3.245e3 d、-.1874. 已知a是int型变量,下面不正确的赋值语句是_。 a、a = 65;b、 a =1.2; c、a= a; d、 a= a +32;5. 广义地说,为解决一个问题而采取的方法和步骤,称为_。a、迭代 b、增量c、递归 d、算法6. 以下叙述中正确的是_。a、 c程序中注释部分可以出现在程序中任意合适的地方b、 花括号和只能作为函数体的定界符c、 构成c程序的基本单位是函数,所有函数名都可以由用户命名d、 分号是c语句之间的分隔符,不是语句的一部分7.若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是_。w=1; x=2; y=3; z=4;k=(wx)?w:x;k=(ky)?k:y;k=(k0;i-) for(j=0;j4;j+) n=n+1;a、20 b、24 c、 25 d、3011. 以下程序编译、运行的结果是 a、 5,5 b、 5.0,5.0 c、 5.0 5.0 d、 5 5#define min 2#define max 7main()printf(%d,%dn,min+3,max-min);12.下列符号中可以作为函数名的是_。 a、xa b、sysf c、5ac d、bc13. 以下正确的函数形式是_。a、double fun1(int x, int y)b、fun1(int x, y) z=x+y; return z; int z; return z; c、fun1(x, y) int x, y; double z; z=x+y; return z; d、double fun1(int x, int y) double z; z=x+y; return z; 14以下程序的输出结果是a、20 b、 30 c、 21 d、 31main() int a5=10,20,30,40,50 , *p ; p=&a1; printf(%d, *p+); 15. 修改高级语言源程序的是_。 a、调试程序 b、 连接程序 c、编译程序 d、编辑程序二程序填空题(20分,每空2分) 将答案写在答题框中。答在别处不得分。 1.实现以下数学关系 -1 (x0)的程序如下,请填空。main() float x; int y; scanf(%f,&x); if( ) y=-1;if(x=0) y=0;if( ) y=1;printf(%dn, y);2.以下函数用以求x的y次方,y为正整数。请填空。 double fun (double x , double y ) int i ; double p=1;for (i=1; i ; i+ +)p = ;return ( p );3求数组所有元素的积,请填空。 main() int s,i,a4=1,2,3,4; s= ; for(i=0;i4;i+) s= ; printf(%dn,s);4.以下函数用于找出一个24矩阵中的最大元素值,请填空。max_value(int arr 4) int i, j, max;max=arr00;for (i=0; i2; i+)for (j=0; jmax)max= ;return(max);5.将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。含有switch语句的程序段:int s, t, m;t=(int)(s/10);switch( t ) case 10: m=5; break; case 9: m=4; break; case 8: m=3; break; case 7: m=2; break; case 6: m=1; break; default: m=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论