不用去学校,就能修名校专科/本科学历,国家承认 学信网可查,查看详情>>>
学习推荐一、单项选择题(本大题共15小题,每小题2分。共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。错涂、多涂或未涂均无分。
1.C语言的保留字(又称关键字)是( )
A.add
B.main
C.real
D.typedef
2.正确的C语言整型常数是( )
A.3
B.3.0
C.1E0
D.false
3.设int a, b;,表达式a=2, b=5, --a+b的值是( )
A.5
B.6
C.7
D.8
4.设int a=0;,循环次数为无限的语句是( )
A.while(a);
B.for(a; a; a);
C.for(a; a==0;);
D.do{a++;} while(-a);
5.do{…)while(表达式)中“表达式”的类型是( )
A.任意的
B.关系的
C.算术的
D.逻辑的
6.设int a=1, b=2;,能将a的值赋给b的表达式是( )
A.a=b
B.b+=a
C.a||(b=a)
D.a&&(b=a)
7.函数中定义的变量类型可以是( )
A.auto型
B.static型
C.register型
D.以上三种类型
8.关于函数正确的说法是( )
A.函数必须有返回值
B.函数可以嵌套定义
C.返回值可以是指针类型
D.函数必须有形式参数
9.设int s[3] [4]={1,2,3,4,5,6};,值为2的数组元素是( )
A.s[0] [0]
B.s[0] [1]
C.s[1] [0]
D.s[1] [1]
10.下列不是递归函数的是( )
A.int t(int n)
{ if(n==0) return 0;
else return (n-1);
}
B.int t(int n)
{ if(n==0) return 0;
else return t(n-1);
}
C.int t(int n)
{ if(n==0) return 0;
else return n+t(n-1);
}
D.int t(int n)
{ if(n==0) return 1;
else return n*t(n-1);
}
11.设float w=0; int x=1, y=2; char z='3';,下列语句错误的是( )
A.switch(x)
{ case 0:
case 1:
case 2:
default: ;
}
B.switch(y)
{ case 0:
case 1:
case 2:
default: ;
}
C.switch(z)
{ case 0:
case 1:
case 2:
default: ;
}
D.switch(w)
{ case 0:
case 1:
case 2:
default: ;
}
12.设char ch=65;,下列语句错误的是( )
A.printf("%f\n", ch);
B.printf("%c\n", ch);
C.printf("%d\n", ch);
D.printf("%x\n", ch);
13.正确定义一维数组的是( )
A.char s(20);
B.int n=20; char s[n];
C.#define N 20
char s[N];
D.int n;
scanf("%d", &n);
int s[n];
14.设int u=1, *p;,下列语句正确的是( )
A.p=&u;
B.p=u;
C.&p=u;
D.u=&p;
15.当打开文件出现错误时,系统函数fopen( )的返回值是( )
A.1
B.-1
C.非0
D.NULL
二、填空题(本大题共10小题,每小题2分,共20分)
11.设int n=11;,表达式n%5+n%7的值是_______。
12.执行语句printf("%d\n", 8>>2);后的输出结果是_______。
13.设char s[10]= "Olympic";,执行语句printf("%d\n",sizeof(s));后输出结果是_______。
14.三种逻辑运算符的优先级又高到低依次是_______。
15.设float m=8.8; int n=6;,执行语句printf("%d\n", (int)m+n);后输出结果是_______。
16.设struct { int a; float b; } c, *p=&c;,用指针引用成员b的方式是p->b或_______。
17.设int p=1,q=2,r=3;,表达式p>q< p>
18.系统函数int rewind(FILE *fp)的功能是_______。
19.函数调用时参数传递方式除地址传递外,还有_______。
110.使用系统函数getchar( )和putchar( )时,用到的文件包含命令县_______。
三、程序分析题(本大题共4小题。每小题4分,共16分)阅读下列程序,写出输出结果。
21.#include void main(){ int j; char *color[]={"red", "yellow", "blue", "black", "white"}; for( j=0; j<5; j+=2) printf("%s\n", color[j]);}
22.#include void main(){ int i=10, j=0; switch (i%3) { case 0: i--; j++; case 1: --i; ++j; break; default: ++i; j--; } printf("i=%d, j=%d\n", i, j);}
23.#include int i=1;int fun(int j){ return (++i+j);}void main(){ int j; for(j=1; j<=3; j++) printf("%d\n", fun(j));}
24.#include void main(){ int i; char *strp="****"; for(i=0; i<4; i++) printf("%s\n", strp+i);}
四、程序填充题(本大题共3小题,每小题6分,共18分)
31.计算某学生三门课的平均成绩并输出。#include typedef struct student{ char name[20]; float math, physics, chemistry, average;}_______; /*第一空*/void main(){ STU s={"ZhangSan", 88.5, 90.0, 73.0}; s.average=_______; /*第二空*/ printf("平均成绩=%.1f\n",_______); /*第三空*/}
32.键入一串字符,以回车换行符为结束标志,统计并输出其中小写英文字母的个数。#include void main(){ char letter; int sum=_______; /*第一空*/ while((letter=getchar())!='\n') if(_______) sum++; /*第二空*/ printf("小写英文字母个数sum=%d\n",_______); /*第三空*/}
33.从键盘为二维整型数组a输入数据,输出该二维数组的转置b。#include #define M 2#define N 3void main(){ int a[M][N], b[N][M], i, j; printf("二维数组a:\n"); for(i-0; i< printf(?\n?); j++)printf(?%5d?,b[i][j]); i
五、程序设计题(本大题共2小题,每小题8分。共16分)
41.从键盘输入一串字符(以#作为结束标志)显示到屏幕上并写入文本文件ch.txt。
42.(1)编写函数f计算
的值。(2)编写主函数,从键盘输入x和n的值,调用函数f计算并输出结果(保留两位小数)。
转载请注明:文章转载自(http://www.gdzkw.net)