1、A)每个C程序文件中都必须要有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数(13)下列定义变量的语句中错误的是A)int _int; B)double int_; C)char For; D)float US$;(14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)+x,y=x- B)x+1=y C)x=x+10=x+y D)double(x)/10(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是A)只能是整数0或1 B)只能是整数0或非0整数C)可以是结构
2、体类型的数据 D)可以是任意合法的表达式(16)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+) : (y+)中的条件表达式(x-y) 等价的是A)(x-y0) B)(x-y C)(x-y0) D)(x-y=0)(17)有以下程序main() int x, y, z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是(逗号完成后即加1完成)A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1(18)设有定义:int a; float b; 执行 scanf(%2d%f,&a,&b); 语句时,
3、若从键盘输入876 543.0,a和b的值分别是A)876和543.000000 B)87和6.000000C)87和543.000000 D)76和543.000000(19)有以下程序a=0, b=0;a=10;/* 给a赋值b=20;给b赋值*/a+b=%dn,a+b); 输出计算结果 */程序运行后的输出结果是A)a+b=10 B)a+b=30 C)30 D)出错(20)在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对(21)下列叙述中正确的是A)bre
4、ak语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(22)有以下程序k=5;while(-k) printf(%d,k -= 3);n);执行后的输出结果是A)1 B)2 C)4 D)死循环(23)有以下程序i;for(i=1; i=40; i+) if(i+%5=0)if(+i%8=0)%d ,i);A)5 B)24 C)32 D)40(24)以下选项中,值为1的表达式是A)1 0 B)1 - 0 C)1 -0 D) - (25)有以下程序fun(int
5、x, int y) return (x+y); a=1, b=2, c=3, sum;sum=fun(a+,b+,a+b),c+);%dn,sum);A)6 B)7C)8 D)9(26)有以下程序 char s=abcde;s+=2;,s0);执行后的结果是A)输出字符a的ASCII码 B)输出字符c的ASCII码C)输出字符c D)程序出错(27)有以下程序y) static int m=0, i=2;i+=m+1;m=i+x+y;return m;j=1, m=1, k;k=fun(j,m);printf(%d,k);A)5, 5 B)5, 11 C)11, 11 D)11, 5(28)有
6、以下程序x)p;if(x=0|x=1) return(3);p=x-fun(x-2);return p;,fun(7);A)7 B)3 C)2 D)0(29)在16位编译系统上,若有定义int a=10,20,30, *p=a;,当执行p+;后,下列说法错误的是A)p向高地址移了一个字节 B)p向高地址移了一个存储单元C)p向高地址移了两个字节 D)p与a+1等价(30)有以下程序a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);,c); C)3 D)4(31)若有定义:int w35; ,则以下不能正确表示该数组元素的表达式是A)*(
7、*w+3) B)*(w+1)4 C)*(*(w+1) D)*(&w00+1)(32)若有以下函数首部int fun(double x10, int *n)则下面针对此函数的函数声明语句中正确的是 fun(double x, int *n); B)int , int );C)int fun(double *x, int n); D)int fun(double *, int *);(33)有以下程序void change(int k ) k0=k5; int x10=1,2,3,4,5,6,7,8,9,10,n=0;while( n=4 ) change( &xn) ; n+;for(n=0;
8、n5; n+),xn);程序运行后输出的结果是A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5(34)有以下程序 x32=0, i;for(i=0;3; i+) scanf(,xi);%3d%3d%3dn,x00,x01,x10);若运行时输入:2 4 6sex); D)scanf(,ps-age);(39)若有以下定义和语句union data int i; char c; f; x; y;则以下语句正确的是A)x=10.5; B)x.c=101; C)y=x; D)printf(,x);(40)有以下程序 FILE *fp; ch=abcd,
9、t;fp=fopen(abc.dat,wb+4; i+) fwrite(&chi,1,1,fp);fseek(fp,-2L,SEEK_END);fread(&t,1,1,fp);fclose(fp);%cn,t);程序执行后的输出结果是A)d B)c C)b D)a二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)下列软件系统结构图的宽度为【1】 。(2)【2】程序调试 的任务是诊断和改正程序中的错误。(3)一个关系表的行称为 【3】元组 。(4)按“先进后出”原则组织数据的数据结构是 【4】栈 (5)数据结构分为线性结构和非
10、线性结构,带链的队列属于【5】线性结构 (6)设有定义:float x=123.4567;,则执行以下语句后的输出结果是【6】123.460000。%fn,(int)(x*100+0.5)/100.0);(7)以下程序运行后的输出结果是【7】10 11m=011,n=11;,+m, n+);(8)以下程序运行后的输出结果是【8】x,a=1,b=2,c=3,d=4;x=(a x=(x x=(dx) ? x : d;(9)有以下程序,若运行时从键盘输入:18,11b) a -= b;while(ba) b -= a;%3d%3dn,a,b);(10)以下程序的功能是:将输入的正整数按逆序输出。例如
11、:若输入135则输出531。请填空。#include n,s;Enter a number : n);Output:dos=n%10;,s);【10】n=n/10while(n!=0);(11)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2 (x+8)+6y2=sin2(x)-2sin(x)+6请填空。math.hdouble fun(double x) return (x*x-2*x+6); double x,y1,y2;Enter x:scanf(%lfx);y1=fun(【11】x+8y2=fun(【12】sin(x)y1=%lf,
12、y2=%lfn,y1,y2);(12)下面程序的功能是:将N行N列二维数组中每一行的元素进行排序,第0行从小到大排序,第1行从大到小排序,第2行从小到大排序,第3行从大到小排序,例如:#define N 4void sort(int aN)i, j, k, t;for (i=0; ifor (j=0; jfor (k= j+1x【13】 k/*判断行下标是否为偶数来确定按升序或降序来排序*/if (i%2=0 & aij aik | ( i%2!=0 & aij 1)return a0 + f(a+1, n-1);elsereturn a0;aa10=1,2,3,4,5,6,7,8,9,10, s;s = f(aa+2,4);, s);