1、一、 单项选择题 (本大题共20小题,每小题1分,共20分)1. C语言程序由什么组成? ( ) A. 子程序 B. 主程序和子程序 C. 函数 D. 过程2以下属于C语言中的简单数据类型的是( )A. int、float、long B. int、float、char、booleanC. char、byte、double D. int、boolean、long3以下那一个不是C语言合法的关键字( ) A. switch B. cher C. int D. double4设ch是char型变量,其值为A,则下面表达式的值是 ch=(ch=A&ch=Z)?(ch+32):chA. A B. a C
2、. Z D. z5. 若执行printf(%dn, strlen(anx41)语句其输出结果是( )A 8 B 7 C 6 D 46. 若int a, b, c; 则表达式(a=2, b=5, b+, a+b)的值是( )A. 7 B. 8 C. 6 D. 27. 以下运算符中优先级最高的为( ) A. & B. + C. * D. 8数组名作为实参传递给形参时,数组名被处理为()A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值9. 表达式0x130x17的值是A. 0x04 B. 0x13 C. 0xE8 D. 0x1710.执行下列程序#include “
3、stdio.h”main() printf(“%dn”,NULL) ;后输出的结果是()A. 1 B. 0 C. 1 D. 211. 若有定义typedef char STRING255; STRING s; 则s是( )A 字符指针数组变量B字符指针变量C 字符变量 D 字符数组变量12. 判断char型变量c1是否小写字母的正确表达式为( )A a=c1=a)&(c1=a)&(c1=z)D (a=c1)13. 设E为表达式,以下与dowhile(E);不等价的语句是( )A dowhile(!E=0);B dowhile(E0|Ec&b=c的值为_。4静态型局部变量的作用域是_5下列函数要
4、求计算两个整数x、y之和,并通过形参z传回该和值,请填空:void add(int x,int y, _z)_=x+y;return;6在C语言中,求平方根的函数是_,求正弦函数是_7假设有如下结构体类型说明:struct test int a; int b;用一条语句定义上述结构体类型变量x和y的正确形式为_将x的成员a和b分别赋值为3和5的正确形式为_;将x的成员a和b之和赋给y的成员a的正确形式为_.8. 定义枚举类型的关键字为_.9在c语言中,利用fopen以只读的方式打开当前目录下的a.txt文件的正确形式为_;利用fopen以只写的方式打开d盘根目录下的a.txt文件的正确形式为_
5、。10定义计算园面积的宏(r为半径) #define S(r) _三、 程序分析题 (本大题共5小题,每小题5分,共25分)1、若运行时输入:16,则以下程序的运行结果是_。#include main() int age; printf(“Input your age : “); scanf(“%d”, &age); if (age=18) printf(“your $4.5yuan/hour”); else printf(“Your $3.0yuan/hour”);2. 写出下列程序的输出结果_main() int x=100,a=10,b=20,ok1=5,ok2=0; if(ab) if
6、(b!=15) if(!ok1) x=1; else if(ok2) x=10; else x=-1; printf(“%dn”,x);3. 写出下列程序的运行结果_#define PR(ar) printf(“%d ,” , ar)main()int j,a=2,4,6,8,10,12,14,16,*p=a+5;for(j=3; j ; j-)switch(j) case 1: case 2: PR(*p+);break; case 3:PR(*(-p);4以下程序的执行结果是_ #include main( ) char str=“1a2b3c”; int i; for (i=0; str
7、i!=0; i+) if (stri=0 & strix); printf(%d,(+p)-x); printf(%d, *(+p)-y); printf(%dn, +(*(+p)-y); 四、 程序填充题 (本大题共5小题,每小题4分。共20分)1.以下程序从键盘输入一个整数,判断其是否为偶数,请填空。main() _;scanf(“%d”,&x);if(_) printf(“偶数!”);_ printf(“奇数!”);2.以下程序从键盘输入10个数,输出总和及平均数,请填空。main() int k; _ for(k=1,sum=0;k=10;k+) scanf(“%f”,&f);_ pr
8、intf(“sum=%f, t average=%fn”,sum,sum/10);3. 以下函数用选择法对一个整数数组进行排序,请填空:sort(int x,int n)int h,j,k,t;for(h=0;_;h+) k=h; for(j=h+1;jxk) _; if(k!=h) t=xh;xh=xk;xk=t;4以下程序用数组求Fibonacci数列的前20项,每5个一行输出,请填空:#include main()int I; int f20=_; /*填空*/ for(I=2;I20;I+) fI=fI-2+fI-1; for(I=0;I20;I+) if(I%5=0) printf(
9、_);/*填空*/printf(“%12d”,fI); 5. 下列程序的功能是将一个结构体数组写入一个文件中保存起来,请填空: #include struct Test char a20 ; ; main() _; struct Test x3= “test1”,“test2”,“test3”; int i; fp = fopen (“d:cwzabc.bat”, ”wb”) ; for (i=0; im)&(n%2=0)2. stdin stdout3. 1 04. 定义它的函数范围内有效5. int * *z6. sqrt() sin()7. struct test x,y x.a=3;x
10、.b=5 y.a=x.a+x.b8. enum9. fopen(“a.txt”, “r”) fopen(“a.txt”, “w”)10. 3.14*(r)*(r)三、程序分析题1. Your $3.0yuan/hour2. -13. 10,10,12,4. 1235 1,2,3,5四、程序填充题1 int x;x%2=0else2. float f,sum;sum=sum+f;3. hn-1k=j4. 0,1“n”5. FILE *fp;fwrite(&xi,sizeof(struct test),1,fp);fclose(fp)五、 程序设计题1 #includemain()FILE *fp
11、; char name20; printf(“input filename”); scanf(“%s”, name); if(fp=fopen(name,”r”)=NULL) printf(“cannot open filen”); exit(0); while (!feof(fp) putc(fgetc(fp); fclose(fp); 2#include stdio.h#include math.hmain() float a,b,c,cir,area; scanf(%f%f%f,&a,&b,&c); if (a+bc)&(b+ca)&(a+cb) if (fabs(a-b)1e-6&fa
12、bs(b-c)1e-6&fabs(a-c)1e-6) printf(its a dengbian triangle); else if (fabs(a-b)1e-6|fabs(b-c)1e-6|fabs(a-c)1e-6) printf(its a dengyao triangle); else printf(its a normal triangle); cir=(a+b+c)/2; area=sqrt(cir*(cir-a)*(cir-b)*(cir-c); printf(ncircle=%.2f area=%.2fn,cir*2,area); else printf( its not a triangle); getch();