内容正文:
《编程语言基础—C语言》高等教育出版社(第五版)
编程语言基础—C语言考试 模拟卷(五)
考试时间:100分钟 满分:100分
姓名 班级 学号 1
一、单项选择题(本题共20小题,每题2分,共20分,多选、错选均不得分)
1.以下选项中可用作 C 语言合法用户标识符的是( )
A. 3b B. return C. -3ab D. _123
2.以下程序的运行结果是( )
int i = 3, j = 4, k = 5;
if (j > i)
if (j > k)
printf("%d", i < k ? 3 : 4);
else
printf("%d", i > k ? 4 : 5);
A. 3 B. 4
C. 5 D. 6
3.以下程序段的输出结果是 ( )
int sum, num;
sum = num = 6;
num = sum--, ++sum, ++num;
printf("%d,%d
", num, sum);
A. 6,7 B. 7,5
C. 6,5 D. 7,6
4.sizeof( int ) 是( )
A. 一个整型表达式 B. 一个函数调用
C. 一个双精度表达式 D. 不合法的表达形式
5.有以下程序段,程序运行后的输出结果是( )
char k = 99;
printf("%c,%o,%%d", k, k, k);
A. c,143,%d B. c,143,99
C. 143,c,%d D. 143,c,99
6.执行如下的程序段,若键盘输入ABC,则输出的结果是( )
char ch;
ch = getchar();
putchar(ch);
A. A B. B
C. C D. ABC
7.以下程序段的运行结果是( )
int a = 30;
a += a -= 7;
printf("%o
", a);
A. 46 B. 2e
C. 56 D. 53
8.若定义x为int类型,y为double类型,则表达式x = 2.5,y = 7 - 3.0 / 2 + x;的值为( )
A. 8.000000 B. 7.500000
C. 7.000000 D. 8.500000
9.以下关于定义数组的语句的叙述中,下列说法正确的是( )
A. int a[5] = {0}; 该语句是合法的
B. int a[] = {0,1,2};该语句是不合法的,遗漏了数组的大小
C. char a[2] = {"C", "D"}; 是合法的,定义了一个包含两个字符的数组
D. char a[3]; a = "AB"; 是合法的,因为数组有三个字符空间的容量,可以保存两个字符
10.若i是int型变量,以下循环体执行的次数为( )
for (i = 2; i > 3; i++)
printf("%d
", i--);
A. 0 B. 1
C. 2 D. 无限次
11.以下程序的输出结果是( )
#include <stdio.h>
main() {
char a[10] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}, *p;
int i = 2;
p = a + 7;
printf("%s
", p - 3 + i);
}
A. 45678 B. 56789
C. 6789 D. 4567
12.下列有关循环结构描述正确的是( )
A. for循环中的三个表达式都不能缺少
B. for循环可以用continue语句跳出循环体
C. for循环只能用于循环次数已经确定的情况
D. for循环的循环体可以包含多条语句,但必须用花括号括起来
13.printf函数打印输出为10进制、左对齐20个字符、5位精度的double类型数据。以下正确的是( )
A. %-20.5d B. %5.20d
C. %-20.5f D. %-5.20f
14.下面程序执行后,该程序的输出值为( )
#define SUM(x) 5*x+3
int main() {
int i = 2, j = 3;
printf("%d
", SUM(i + j));
}
A. 16 B. 28
C. 20 D. 其他几项都不对
15.以下程序段运行后,当输入数据的形式为4↙,该程序的输出结果为( )
int a[] = {1, 3, 5, 7, 2, 4, 6, 8}, i, start;
scanf("%d", &start);
for (i = 0; i < 3; i++)
printf("%d", a[(start - i)