一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
A.C语言不是一种高级语言
B.C语言不用编译就能被计算机执行
C.C语言能够直接访问物理地址和进行位操作
D.C语言具有其他语言的一切优点
2,以下哪项不属于C语言的保留字()
A. int
B. main
C. void
D. return
3.C语言是一种结构化语言,是因为()
A.用C语言编写的程序层次清晰明了,易于调试和维护
B.C语言具有结构化的控制语句,如if语句、while语句、for语句等
C.C语言用函数作为程序的模块单位,以函数为模块组织程序
D.C语言用函数作为程序的模块单位,以函数为模块组织程序,还具有结构化的控制语句。如if语句、while语句、for语句等
4.以下选项中,能用做数据常量的是()。
A. ol115
B.0118
C. 1.5e1.5
D. 115L
5.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是()
A. ‘a’&&‘b’
B. a<=b
C. allb+c&&b-c
D. !((a
6.设变量n为Noat型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()
A. n=(n100+0.5)/100.0
B.m=n100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
7.以下关于运算符优先级顺序的描述中正确的是()
A.关系运算符<算术运算符<赋值运算符
B.赋值运算符<关系运算符<算术运算符
C.算术运算符<关系运算符<赋值运算符
D.赋值运算符<算术运算符<关系运算符
8.语句printi(“%d”,(a=2)&&(b=-2));的输出结果是()。
A.无输出
B.结果不确定
C.-1
D.1
9.下列不是C语言所表现出来的不足之处
A.数据类型检查不严格
B.表达式容易出现二义性
C.可移植性差
D.不能自动检查数据越界
10,下列程序的功能是:给:输入数据后计算半径为r的圆面积s。程序在编译时出错,原因是()。
#include
int main (){
int r; float s;
scanf(“%d”, &r);
s = PIrr;printf(“s=%An”, s);
return 0;
}
A.注释语句书写位置错误
B.存放半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量
11.下而程序运行时如果输入“-123362<回车>”,则输出结果是(
#include
int main() {
int t, a, b, i;
for (i = 1; i <= 3; i++) {
printf("Enter two integers: ");
scanf("%d %d", &a, &b);
if (a > b) {
t = a - b;
} else if (a == b) {
t = 1;
} else {
t = b - a;
}
printf("%d\n", t);
}
return 0;
}
A.304
B.314
C.134
D.316
A.语法错误,不能执行
B.无限次
C. 10
D.1
13.假定double类型变量占用8个字节,且数组定义如下,则数组length在内在中所占字节数是double length [10];
A.0
B. 10
C.80
D. 160
14.以下对二维数组a的正确说明是()
A. int a[3]0;
B. float a(3,4);
C. double a[1][4];
D. float a(3)(4);
15.以下描述错误的是()
A.字符串数组中可以存放ASCI字符集中的任何字符
B.字符串数组的字符可以整体输入输出
C.字符串数组中只能存放键盘上可以找到的字符
D.不可以用关系运算符对数组中的字符串进行比较
16,下列变量中,哪类变量的生存期和作用域是不一致的()。
A. 自动变量
B.外部变量
C.静态局部变量
D.寄存器变量
A.实参可以是常量、变量或表达式
B.实参可以是任何类型
C.形参可以是常量、变量或表达式
D.形参应与对应的实参类型一致
18,若已定义: int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是
A. p+1
B. a+1
C. a++
D. ++p
19,下列选项中不会引起二义性的宏定义是()。
A.#define POWER(x) xx
B.#define POWER(x) (x)(x)
C. #define POWER(x)(xx)
D. #define POWER(x) ((x)(x))
#include
int main() {
char a[] = "programming";
char b[] = "language";
char *pl = a, *p2 = b;
int i;
for (i = 0; i < 7; i++) {
if (*(pl + i) == *(p2 + i)) {
printf("%c", *(pl + i));
}
}
return 0;
}
A. gm
B. rg
C. or
D. ga
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。)
1_________
#include
int main() {
int i;
char str[] = "university";
for (i = 0; i <= 3; i++) {
switch (i) {
case 0:
printf("%c ", str[i]);
break;
case 1:
printf("%c\n", str[i]);
break;
case 2:
printf("%s\n", str);
break;
default:
printf("***In");
}
}
return 0;
}
2_______
#include
int main() {
int i;
char str[] = "university";
for (i = 0; i <= 3; i++) {
switch (i) {
case 0:
printf("%c ", str[i]);
break;
case 1:
printf("%c\n", str[i]);
break;
case 2:
printf("%s\n", str);
break;
default:
printf("***In");
}
}
return 0;
}
3_______
#include
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int m, k, t;
for (m = 0; m < 3; m++) {
for (k = 0; k <= m; k++) {
if ((m + k) % 2) {
t = a[m][k];
a[m][k] = a[k][m];
a[k][m] = t;
}
}
}
for (m = 0; m < 3; m++) {
for (k = 0; k < 3; k++) {
printf("%d ", a[m][k]);
}
printf("\n");
}
return 0;
}
4_______
#include "stdio.h"
void main()
{int a,b,t;
t = 0;
scanf("%d,%d",&a,&b);
if(a>b) t=a;a= b;b=t;
printf("b=%d",b);
}
5______`
#include
void ast(int x,int y,int *cp,int *dp)
{*cp=x*y; *dp=x/y;}
void main(){
int a,b,c,d;
a=4; b=3;
ast(a,b,&c,&d);
printf("%d,%d\n",c,d);}
三、程序填空题(共35分。请将答案填写在答题纸的相应位置上。)
1,下列程序先消除输入字符串的前后空格,再判断是否是“回文”(即字符串正读和倒读都是一样),若是则输出 YES,否则输出 NO。
#include
#include
int main(){
char s[80], ch, *p, *q;
int i, j, n;
gets(s);
p=s;
while (*p==')_________;
n = strlen(s);
q=__________;
while ( *q =='')_________;
while(___________&& *p==*q){
p++;
_________;
}
if (p<q)
printf("NO\n");
else
printf("YESn");
return 0;
}
2.本程序的功能是将字符串a的所有字符传送到字符串b中,要求每传送三个字符后再存放一个空格。
#include
int main(){
int i,k=0;
char a[80], b[80], *p;
p=a;
gets(p);
while(*p)
{ for(i=1;___________;ip++, k++,i++) b[k]=*p;
if(__________) (bk='';k++);}
}
b[k]='\0'
;puts(b);
return 0;
四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)
2.编写函数int stremp(char pl,charp2):实现两个字符串的比较。
3,某大学正在举行歌唱比赛,现有10位评委为学生评分,评分采用百分制。按如下规则计算学生的最终得分:先计算评委的分数之和,减去分数中的最高分与最低分,再除以8得到学生的成绩。请输入1位同学的10个分数,计算和输出学生的最终得分。下面给出了main0函数,请将其他函数补充完整,即写出input、ssum、smax与smin函数的定义。
#include
int main(){
int score[10],max,min,sum;
float aver;input(score, 10);//输入 10个评委的评分sum=ssum(score,10);//计算 10个评委的评分之和
max=smax(score,10);//计算最高分min=smin(score,10);//计算最低分
aver-(sum-max-min)*1.0/(10-2);//计算学生的最终得分
printf("%fn",aver);//输出学生的最终得分return 0;