一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
- 以下叙述中正确的是(C)
A.C语言不是一种高级语言
B.C语言不用编译就能被计算机执行
C.C语言能够直接访问物理地址和进行位操作
D.C语言具有其他语言的一切优点
2,以下哪项不属于C语言的保留字(B)
A. int
B. main
C. void
D. return
3.C语言是一种结构化语言,是因为(D)
A.用C语言编写的程序层次清晰明了,易于调试和维护
B.C语言具有结构化的控制语句,如if语句、while语句、for语句等
C.C语言用函数作为程序的模块单位,以函数为模块组织程序
D.C语言用函数作为程序的模块单位,以函数为模块组织程序,还具有结构化的控制语句。如if语句、while语句、for语句等
4.以下选项中,能用做数据常量的是(D)。
A. ol115
B.0118
C. 1.5e1.5
D. 115L
5.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(D)
A. ‘a’&&‘b’
B. a<=b
C. allb+c&&b-c
D. !((a<b)&&!cll1)
6.设变量n为Noat型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是(B)
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.以下关于运算符优先级顺序的描述中正确的是(B)
A.关系运算符<算术运算符<赋值运算符
B.赋值运算符<关系运算符<算术运算符
C.算术运算符<关系运算符<赋值运算符
D.赋值运算符<算术运算符<关系运算符
8.语句printi(“%d”,(a=2)&&(b=-2));的输出结果是(D)。
A.无输出
B.结果不确定
C.-1
D.1
9.下列不是C语言所表现出来的不足之处 C
A.数据类型检查不严格
B.表达式容易出现二义性
C.可移植性差
D.不能自动检查数据越界
10,下列程序的功能是:给:输入数据后计算半径为r的圆面积s。程序在编译时出错,原因是(D)。
#include <stdio.h>
int main (){
int r; float s;
scanf(“%d”, &r);
s = PIrr;printf(“s=%An”, s);
return 0;
}
A.注释语句书写位置错误
B.存放半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量
11.下而程序运行时如果输入“-123362<回车>”,则输出结果是( B)
#include <stdio.h>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
- 下面的这个循环的循环次数是(for(int i=0,j=10; i=j=10; i++j–) B
A.语法错误,不能执行
B.无限次
C. 10
D.1
13.假定double类型变量占用8个字节,且数组定义如下,则数组length在内在中所占字节数是double length [10];
C
A.0
B. 10
C.80
D. 160
14.以下对二维数组a的正确说明是(C)
A. int a[3]0;
B. float a(3,4);
C. double a[1][4];
D. float a(3)(4);
15.以下描述错误的是(C)
A.字符串数组中可以存放ASCI字符集中的任何字符
B.字符串数组的字符可以整体输入输出
C.字符串数组中只能存放键盘上可以找到的字符
D.不可以用关系运算符对数组中的字符串进行比较
16,下列变量中,哪类变量的生存期和作用域是不一致的©。
A. 自动变量
B.外部变量
C.静态局部变量
D.寄存器变量
- 以下不正确的说法是(C)。
A.实参可以是常量、变量或表达式
B.实参可以是任何类型
C.形参可以是常量、变量或表达式
D.形参应与对应的实参类型一致
18,若已定义: int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是 C
A. p+1
B. a+1
C. a++
D. ++p
19,下列选项中不会引起二义性的宏定义是(D)。
A.#define POWER(x) xx
B.#define POWER(x) (x)(x)
C. #define POWER(x)(xx)
D. #define POWER(x) ((x)(x))
- 以下程序的输出结果是(D)
#include <stdio.h>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 <stdio.h>int main() {int i;char str[] = "university";for (i = 0; i <= 3; i++