专栏文章
20251124C语言
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min3h1cm
- 此快照首次捕获于
- 2025/12/01 19:57 3 个月前
- 此快照最后确认于
- 2025/12/01 19:57 3 个月前
C语言程序设计试卷考查形式与考查要点
一、考查形式
- 三份试卷均为闭卷考试,题型结构稳定,主要包含选择题、判断题、填空题、完善程序题、编程题五类题型,侧重对基础语法、程序逻辑、代码应用的分层考查
二、考查要点及对应题目
(一)变量定义与命名规则
核心考查合法变量命名的语法要求,需遵循“首字符为字母或下划线,后续字符为字母、数字或下划线”的规则。
- 来源:2017-2018-1试卷(文档2)选择题第1题
- 题目:下列变量合法的是( )。
- A.2a0
- B._1a0
- C.x>y
- D.b-a
(二)运算符与表达式求值
涵盖逗号运算符、算术运算符、逻辑运算符、赋值运算符等,考查表达式优先级与求值逻辑。
- 来源:2017-2018-1试卷(文档2)选择题第2题
- 题目:假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )。
- A.7
- B.8
- C.6
- D.2
- 来源:2018-2019-1试卷(文档3)选择题第9题
- 题目:设a=2,b=3,c=4,则表达式a+b>c&&b==c&&a|++a-b&&b+c的值为( )。
- A.5
- B.7
- C.0
- D.1
- 来源:2017-2018-1试卷(文档2)填空题第1题
-
题目:执行a=4+6,a*5,a+10后,逗号表达式的值为【1】______。
(三)输入输出函数应用
考查scanf、printf、getchar、putchar等函数的使用规范,包括格式控制符、参数传递要求。
- 来源:2017-2018-1试卷(文档2)选择题第5题
- 题目:阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为( )。
#include <stdio.h>
void main() {
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
printf("x+y+z=%d\n", x + y + z);
}
- A.x+y+z=48
- B.x+y+z=35
- C.x+z=35
- D.不确定值
- 来源:2017-2018-1试卷(文档2)选择题第13题
- 题目:以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( )。
int main() {
int *p, *q, a, b;
p = &a;
printf("input a: ");
scanf("%d", *p);
……
}
- A.* p表示的是指针变量p的地址
- B.* p表示的是变量a的值,而不是变量a的地址
- C.* p表示的是指针变量p的值
- D.* p只能用来说明p是一个指针变量
- 来源:2017-2018-1试卷(文档2)完善程序第1题
- 题目:统计从键盘输入的字符中数字字符的个数,用换行符结束循环。请填空。
int n = 0, c;
c = getchar();
while (【1】) {
if (【2】)
n++;
c = getchar();
}
(四)循环结构(for、while、do-while)
考查循环条件设置、循环次数计算、循环嵌套及break/continue语句的使用。
- 来源:2017-2018-1试卷(文档2)选择题第7题
- 题目:有以下程序:
void main() {
int i, n = 0;
for (i = 2; i < 5; i++) {
do {
if (i % 3)
continue;
n++;
} while (!i);
n++;
}
printf("n=%d\n", n);
}
- 程序执行后的输出结果是( )。
- A.n=5
- B.n=2
- C.n=3
- D.n=4
- 来源:2017-2018-1试卷(文档2)选择题第10题
- 题目:C语言中while和do-while循环的主要区别是( )。
- A.do-while循环是表达式不成立才进入循环体
- B.do-while的循环控制条件至少无条件执行一次
- C.do-while允许从外部转到循环体内,而while循环不允许
- D.do-while的循环体不能是复合语句
- 来源:2018-2019-1试卷(文档3)选择题第12题
- 题目:下面程序段的运行结果是( )。
int a = 1, b = 2, c = 2, t;
while (a < b < c) {
t = a;
a = b;
b = t;
c--;
}
printf("%d,%d,%d", a, b, c);
- A. 1,2,0
- B.2,1,0
- C.1,2,1
- D. 2,1,1
(五)数组操作(一维、二维)
涵盖数组定义、初始化、元素访问、数组遍历、数组反转等核心操作。
- 来源:2017-2018-1试卷(文档2)选择题第6题
- 题目:定义如下变量和数组:
int k;
int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
则下面语句的输出结果为( )。
CPPfor(k=0;k<3;k++);
printf("%d",a[k][2-k]);
- A.3 5 7
- B.3 6 9
- C.1 5 9
- D.1 4 7
- 来源:2017-2018-1试卷(文档2)选择题第16题
- 题目:下面的程序将输出:( )。
main() {
int a[5] = {1, 2, 3};
int k, j;
for (k = 1; k < 4; k++)
a[k]++;
for (j = 0; j < 5; j++)
printf("%d ", a[j]);
}
- A.1 3 4 1 0
- B.2 3 4 1 0
- C.2 3 4 0 0
- D.1 3 4 0 0
- 来源:2018-2019-1试卷(文档3)填空题第4题
- 题目:以下程序中的功能是调用rowmax函数,实现在N行M列的矩阵中,找出每行上的最大值。
#define N 3
#define M 4
#include <stdio.h>
void rowmax(int x[N][M]) {
int i, j, p;
for (i = 0; i < N; i++) {
p = 0;
for (j = 1; j < M; j++)
if (【7】 < x[i][j])
p = j;
printf("第%d行,最大的是第%d个。\n", i + 1, p + 1);
}
}
int main() {
int a[N][M] = {1, 4, 7, 11, 0, 7, 9, 8, 2, 3, 1, 10};
【8】;
}
(六)指针应用
考查指针定义、指针与数组的关系、指针作为函数参数的传递规则。
- 来源:2017-2018-1试卷(文档2)选择题第15题
- 题目:若有定义“int a[]={1,2,3,4,5,6,7,8,9,10}, *p=a;”,则以下表达式值为4的是( )。
- A. p+=3, *p++
- B. p+=3, ++*p
- C. p+=4, *p++
- D. p+=4, ++*p
- 来源:2018-2019-1试卷(文档3)选择题第21题
- 题目:执行以下程序后,y的值是( )。
void main() {
int a[] = {2, 4, 6, 8, 10}, y = 1, x, *p = a;
for (x = 0; x < 3; x++)
y += *(p + x);
printf("%d\n", y);
}
- A. 13
- B. 12
- C. 11
- D. 10
- 来源:2018-2019-1试卷(文档3)阅读程序第3题
- 题目:下列程序的输出结果是________________。
#include <stdio.h>
void main() {
int a[4] = {1, 2, 3, 4}, *p;
p = &a[2];
printf("%d ", ++*p);
printf("%d\n", *--p);
}
(七)函数定义与调用
包括函数参数传递(值传递、地址传递)、函数返回值、递归函数、函数嵌套调用。
- 来源:2017-2018-1试卷(文档2)判断题第1题
- 题目:一个函数利用return只能返回一个函数值。( )
- 来源:2017-2018-1试卷(文档2)选择题第17题
- 题目:下面程序将输出:( )。
void add(int a) {
a++;
return;
}
void main() {
int k;
k = 3.4;
add(k);
printf("%d", k);
}
- A.3 4
- B.4 4
- C.3
- D.4
- 来源:2017-2018-1试卷(文档2)完善程序第4题
- 题目:对下面的递归函数进行填空。递归公式为:
pn(x)=1(n=0)、x(n=1)、(2n-1)x-pn-1(x)(n>1)
float p(int n, float x) {
float z;
if (n == 0)
z = 1;
else if (【7】)
z = x;
else
z =【8】;
return (z);
}
(八)结构体与文件操作
考查结构体定义与成员访问、文件打开/关闭、读写操作(fopen、fwrite、fread、fprintf、fscanf)。
- 来源:2017-2018-1试卷(文档2)选择题第14题
- 题目:设有以下说明语句:struct stu{ int a;float b;} stutype ;则下面的叙述不正确的是( )。A.struct是结构体类型的关键字 B.struct stu是用户定义的结构体类型 C.stutype是用户定义的结构体类型名 D.a和b都是结构体成员名
- 来源:2018-2019-1试卷(文档3)选择题第24题
- 题目:以下对结构体变量stu1中成员age非法引用的是( )。
struct student {
int age;
int num;
} stu1, *p;
p = &stu1;
A. stu1.age
B. *p.age
C. p->age
D. (*p).age
(九)流程控制(if-else、switch-case)
考查分支条件判断、嵌套分支、switch-case的break使用规则。
- 来源:2017-2018-1试卷(文档2)编程题第1题
- 题目:将以下程序段改用嵌套的if语句实现。
int s, t, m;
t = (int)(s / 10);
switch (t) {
case 10:
m = 5;
break;
case 9:
m = 4;
break;
case 8:
m = 3;
break;
case 7:
m = 2;
break;
case 6:
m = 1;
break;
default:
m = 0;
}
- 来源:2018-2019-1试卷(文档3)选择题第11题
- 题目:设x, y 都为整型变量,下列if语句中不正确的是( )。
- A.if(x>y);
- B.if(x==y) x+=y;
- C.if(x!=y) scanf("%d",&x) else x=1;
- D.if(x);
- 来源:2017-2018-1试卷(文档2)选择题第20题
- 题目:下面程序段的运行结果是( )。
char a[7] = "abcdef";
char b[4] = "ABC";
strcpy(a, b);
printf("%c", a[5]);
- A. 空格
- B. \0
- C. e
- D. f
(十)排序算法(起泡法)
考查经典排序算法的实现逻辑,要求能独立编写函数完成排序。
- 来源:2017-2018-1试卷(文档2)编程题第2题
- 题目:写一个函数,用“起泡法”对输入的10个整数按由小到大的顺序排列。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...