1、C语言程序设计试题(第1套)一. 单项选择题(30分,每题2分)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.0
2、00000 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 (
3、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、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);
5、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
6、, &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+)
7、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:
8、 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,
9、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; i
10、nt 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语言程序。参考知识:C语言数的范围:int型和short型为-3276832767,long型为-214748364821474
11、83647,单精度实数为-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!的值。本套题的参考答案:一 单项选择题(30分,每题2分) 1B 6C 11C2A
12、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);6