C语言程序设计试题第1套
- 格式:docx
- 大小:19.42 KB
- 文档页数:9
C语言程序设计试题第1套
C语言程序设计试题(第1套)
(已删除考试范围之外的题目)
单项选择题(30分,每题2分)
1.用C语言编写的代码程序______。
A、可立即执行
B、是一个源程序
C、经过编译即可执行
D、经过编译解释才能执行
2. C语言中用于结构化程序设计的三种基本结构是______。
A、顺序结构、选择结构、循环结构
B、if、switch、break
C、for、while、do-while
D、if、for、continue
3. 以下选项中合法的实型常数是______。
A、5E2.0
B、E-3
C、.2E0
D、1.3E
4. 假定x和y为double型,则表达式x=2,y=x+3/2的值是______。
A、3.500000
B、3
C、2.000000
D、3.000000
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) 0
main() { int i , sum=0;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}
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+x
main( )
{ int m=1, n=2, s=3;
s=S+ADD(m+n);
printf("s=%d\n", s);
}
A、s=8
B、s=9
C、s=6
D、s=18
15.以下变量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 (n2
{ temp=n2; n2=n3; n3=temp; }
if (n1
{ 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 ( ④);}
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=3.5,y=2.5,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)
{ printf(“*%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]);
}
四.程序设计题(30分,每题10分) 认真阅读题目,按要求编写完整的C语言程序。
参考知识:C语言数的范围:int型和short型为-32768~32767,long型为-2147483648~2147483647,单精度实数为-3.4×10-38~3.4×1038(7位有效数字),双精度实数为-1.7×10-308~1.7×10308(15位有效数字),长双精度实数为-1.2×10-4932~1.2×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 11C
2A 7C 12D
3C 8D 13B
4D 9A 14A
5B 10B 15B
程序填空题(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=3.500000
2 3,6 3 *0,*1,**2
4 bdf
5 71
5,4
四.程序设计题(30分,每题10分)
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); }