当前位置:文档之家› C语言程序设计试题第1套(山东建筑大学)

C语言程序设计试题第1套(山东建筑大学)

C语言程序设计试题(第1套)一.单项选择题(30分,每题2分)1.用C语言编写的代码程序______。

A、可立即执行B、是一个源程序C、经过编译即可执行D、经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是______。

A、顺序结构、选择结构、循环结构B、if、switch、breakC、for、while、do-whileD、if、for、continue3. 以下选项中合法的实型常数是______。

A、B、E-3 C、.2E0 D、4. 假定x和y为double型,则表达式x=2,y=x+3/2的值是______。

A、B、3 C、D、5. 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 (a>0) x=1;else x=0;-1 (a<0) 1 (a<0)A、x= 0 (a=0)B、x= -1 (a=0)1 (a>0) 0 (a>0)0 (a<0) -1 (a<0)C、x= -1 (a=0)D、x= 1 (a=0)1 (a>0) 0 (a>0)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) 0main(){ int i , sum=0;for(i=1;i<6;i++) sum+=i;printf("%d\n",sum);}10.若有说明语句:int a[][3]={1,2,3,4,5,6}; 则a数组第一维的大小是。

A. 1B. 2C.3D. 无确定值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=%d\n", s);}A 、s=8B 、s=9C 、s=6D 、s=1814. 若有定义:int x , *p ; 则以下正确的赋值表达式是A 、p=&xB 、 p=xC 、*p=&xD 、 p =*x 15.以下变量a,b,c 均为double 型且已正确赋值,不能正确地表示数学式子c b a ⨯⨯2的C 语言表达式是A 、2*(1/(a*b*c))B 、 2/a*b*cC 、 2/a*1/b*1/cD 、 2/a/b/c二. 程序填空题(20分,每空2分)1. 以下程序的功能是:输入三个整数n1、n2、n3,将最大的数输出。

请填空。

main( ){ int n1, n2, n3, temp;scanf("%d%d%d", &n1, &n2, &n3);if (n2<n3){ temp=n2; n2=n3; n3=temp; }if (n1<n2){ temp=n1; ① ; ② ; }printf("%d\n", n1);}2. 编写打印整数1~10的平方的函数。

请填空。

main ( ){ int i ;for ( i=1; i ③ ; i+ +)printf (“%d \n”, square( i));}square ( int n){return ( ④ );}3.求数组所有元素累加和。

请填空。

main(){int sum,i,j,k,a[2][2][2]={1,2,3,4,5,6,7,8};sum= ⑤ ;for(i=0;i<2;i++)for(j=0;j<2;j++)for(k=0;k<2;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=%d \n”, 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 (s<60||s>110) m=0;else if (s<70) m=1;else if (s<80) m=2;else if (s<90) m=3;else if (s<100) ⑨;else ⑩;三.程序运行结果题(20分,每题4分)阅读下列各程序,将程序编译、运行输出的结果写在题目右边。

1. 写出程序运行的结果:main ( ){int a=2,b=3;float x=,y=,p;p=(float)(a+b)/2+(int)x%(int)y;printf("p=%f\n", p);}2. 写出程序运行的结果:main ( ){int i,j;i=3;j=6;printf("%d,%d\n", i++,j--);printf("%d,%d\n", ++ i,-- j);}3. 写出程序运行的结果:main(){ int number=0;while(number<=1){ pr intf(“*%d,”,number);number++;}printf(“**%d\n”,number);}4. 写出程序运行的结果:main(){char s[]="abcdefg";int i;for(i=1;i<7;i+=2)printf("%c",s[i]);}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%d\n" , c , d ) ;}四.程序设计题(30分,每题10分)认真阅读题目,按要求编写完整的C语言程序。

参考知识:C语言数的范围:int型和short型为-32768~32767,long型为-48~47,单精度实数为×10-38~×1038(7位有效数字),双精度实数为×10-308~×10308(15位有效数字),长双精度实数为×10-4932~×104932(18位有效数字)。

1.输入一个华氏温度f,然后计算,最后输出对应的摄氏温度c。

换算公式为:C=5*(F-32)/9要求输出保留2位小数。

2.已知x (x<1)y= 2x-1 (1<=x<10)3x-11 (x>=10)用scanf函数输入x的值,求y值。

3.编写一个循环结构的程序,求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的值。

本套题的参考答案:一.单项选择题(30分,每题2分)1B 6C 11C2A 7C 12D3C 8D 13B4D 9A 14A5B 10B15B二.程序填空题(20分,每空2分)①n1=n2 ②n2=temp ③<=10 ④n * n ⑤0⑥sum+a[i][j][k] ⑦i*f ⑧-f ⑨m=4 ⑩m=5三.程序阅读题(20分,每题4分)1 p=2 3,63 *0,*1,**24 bdf5 715,4四.1. 本题10分。

main(){ float c,f;printf("Input F=");scanf("%f",&f);c=5*(f-32) /9;printf("C=%.2f\n",c);}2.本题10分。

main(){ float x,y;scanf("%f",&x);if(x<1) y=x;else if(x>=10) y=3*x-11;else y=2*x-1;printf("%f\n", 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);}。

相关主题