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); }