细节决定成败!
四月份《C语言》月考试卷
姓名________ 班级______ 总分_________
一、选择题(3`*10=30分)
1.C语言中,不合法的整型常量( ) A、88 B、018 C、-0Xabcd D、2E5 2.#include
char a,b,c,d;
scanf(”%c%c”,&a,&b); c=getchar(); d=getchar(); printf(”%c%c%c%c\\n”,a,b,c,d); }
当执行程序时,按下列方式输入数据(从第一列开始,
则输出结果是:( )
A、1234 B、12 C、12 D、12 3 34 3.有如下嵌套的if语句 if(a
if(a if(b 以下选项中与上述if语句等价的语句是( ) A、k=(a B、k=(a 4. 若有定义:double a=22;int i=0,k=18;则不符合C语言规定的赋值语句是 A)a=a++,i++ B)i=(a+k)<=(i+k) C)i=a D)i=!a 5.以下可以将char型变量x中的大小写字母进行转换的语句是( ) A、x^=32; B、x+=32; C、x|=32; D、x&=32; 6.已知函数的调用形式是:fread(buffer,size,count,fp);其中buffer代表的是( ) A、一个整形变量,代表要读入的数据项总数 1 细节决定成败! B、一个文件指针,指向要读的文件 C、一个指针,指向要读入数据的存放地址 D、一个存储区,存放要读的数据项 7.在浏览器中显示注册商标“?”,需要使用的html代码是 ( ) A、  B、© C、® D、¥ 8.网页的标题名称就是在在_____标识符中的文字。( ) A 9.html文件由多种相互嵌套的网页元素组成,其中最顶层的元素是( ) A、HEAD B、BODY C、HTML D、RORM 10.超级链接元素A有许多属性,其中用来指明超级链接目标的属性是( A、target B、href C、link D、goal 二、分析下列程序(6*5分=30分) 1.有以下程序 #include {static int x=1; x*=2; return x; } main() {int I,s=1; for (i=1;i<=2;i++) s=fun(); printf(”%d\\n”,s); } 程序运行后的输出结果:__________________________ 2. 有以下程序 #include {int a; char b[10];double c;}; void f(struct A t); main() {struct A a={1001,”ZhangDa”,1098.0}; f(a); pringt(”%d,%s,%6.1f\\n”,a.a,a.b,a.c); } void f(struct A t) {t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;} 程序运行后的输出结果是________________________________ 3. 有以下程序 #include 2 ) 细节决定成败! { int a[]={1,2,3,4,5,6},*k[3],i=0; while(i<3) { k[i]=&a[2*i]; printf(”%d”,*k[i]); i++; }} 程序运行后的输出结果是__________ 4. 有以下程序 #includes { int a=1,b=2; for(;a<8;a++) {b+=a; a+=2;} printf (”%d,%d\\n”,a,b); } 程序运行后的输出结果是:______________________ 5. 有以下程序 #include main() {char b=’a’,a=’A’; fun(&b,a); printf(”%c,%c\\n”,b,a); }程序运行后的输出结果是:______________________ 6、)有以下程序 #include { char a=55; a=~a&055; printf(”%x,%o”,a,a); } 程序运行后的输出结果是____________________ 三、程序填空题(6*5=30分) 1.str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。 例如:str=“how do you do”,结果为:num=4。 #include void fun(char *s,int *num) 3 细节决定成败! { int i,n=0; for(i=0;___________;i++) { if(s[i]>='a'&&s[i]<='z'&&(s[i+1]==' '||s[i+1]=='\\0')) _____________; } ___________________;} main() { char str[N]; int num=0; printf(\ gets(str); while(str[num]) num++; fun(str,&num); printf(\2. 任意输入坐标平面上的一点(x,y),求该点到原点(0,0)间的距离。 #include Node { float x; float y; } Node; main() { Node *p; p= ; scanf(“%f,%f”,p->x,p->y); printf(“%5.1f”,sqrt(p->x*p->x+p->y*p->y)); ; } 四.程序中有两处错误,请标明并更正,不得更改程序结构,不得增行减行。 程序改错题:(4*5分=20分) 1. 下列给定程序中,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1,x2,x3分别输入15,11,2,则输出结果应当是330。 #include int fun(int x, int y, int z) { int j, t, n, m; j = 1; t = m = n = 1; while (t!=0 && m!=0 && n!=0) { j = j+1; t = j%x; m = j%y; n = j%z; 4 细节决定成败! } return j; } main() { int x1, x2, x3, j; printf(\ \ scanf(\ printf(\ j = fun(x1, x2, x3); printf(\ 2、下列给定程序中,函数fun的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使其能得出正确结果。 #include for (j=0; j putarr(int n, int *z) { int i; for (i=1; i<=n; i++, z++) { printf(\ if (!(i)) printf(\} printf(\main() { int aa[20] = {9, 3, 0, 4, 1, 2, 5, 6, 8, 10, 7}, n = 11; printf(\ putarr(n, aa); fun(n, aa); printf(\ putarr(n, aa);} 5