收集了一些经典C语言计算机二级和C语言期末考试题库
整理不易,大家点赞收藏支持一下
祝大家计算机二级和期末考试都高分过
系列文章:
C语言计算机二级/C语言期末考试 刷题(一)
C语言计算机二级/C语言期末考试 刷题(二)
C语言计算机二级/C语言期末考试 刷题(三)
C语言计算机二级/C语言期末考试 刷题(四)
C语言计算机二级/C语言期末考试 刷题(五)
目录
一、填空 共15题 (共计15分)
二、判断 共8题 (共计8分)
三、单选 共20题 (共计20分)
四、程序填空 共2题 (共计20分)
五、程序改错 共2题 (共计20分)
六、程序设计 共2题 (共计17分)
第1题
运行如下程序:
#include
void main()
{
int a, b, c;
scanf("%d,%d,%d", &a, &b, &c);
printf("%d,%d,%d", a, b, c);
}
运行时,输入3,4,5,输出的值为【1】.
=======(答案1)=======
3,4,5
第2题
若有定义int m=5,y=2;则执行表达式y+=y-=m*=y后y的值为【1】.
=======(答案1)=======
-16
第3题
已知a=13,b=6,则表达式a/b的十进制数值为【1】.
=======(答案1)=======
2
第4题
设x、y、z均为int型变量,请写出描述"x或y中至少有一个小于z"的表达式【1】.
=======(答案1)=======
x 第5题 若a是int型变量,则执行表达式a=25/3%3后a的值是【1】. =======(答案1)======= 2 第6题 结构化程序所规定的3种基本控制结构是【1】结构、【2】结构和【3】结构. =======(答案1)======= 顺序 =========或========= {{无序}} =======(答案2)======= 循环 =======(答案3)======= 选择 第7题 下面程序段中循环体的执行次数是【1】 . =======(答案1)======= 3 第8题 从函数的形式上看,函数分为无参函数和【1】两种类型. =======(答案1)======= 有参函数 第9题 下面程序的输出是【1】 . =======(答案1)======= 6 第10题 以下程序的输出结果是【1】. =======(答案1)======= abc 第11题 若有定义:char s[ ]="china"; 则VC++系统为数组s开辟【1】个字节的内存单元. =======(答案1)======= 6 第12题 下列程序的运行结果为【1】. =======(答案1)======= 10 第13题 在C程序中,指针变量的值增1,表示指针变量指向下一个存储单元,指针变量中具体增加的字节数由系统自动根据指针变量的【1】决定. =======(答案1)======= 所指对象数据类型 第14题 C语言中,【1】是程序的基本组成部分. =======(答案1)======= 函数 第15题 C语言中一个函数由函数首部和【1】两部分组成. =======(答案1)======= 函数体 第1题 t 的值为7. 答案:N 第2题 在C语言中,变量必需先定义后使用. 答案:Y 第3题 输出为######. 答案:Y 第4题 能循环三次. 答案:N 第5题 实参和形参之间,数据的传递采用值传送的方法. 答案:Y 第6题 在一个C程序中,main函数必须出现在所有函数之前. 答案:N 第7题 能将a1串赋给a2并输出. 答案:Y 第8题 若有int a[10],*p;p=&a[5];则p[-1]是不合法的. 答案:N 第1题 C语言程序的基本单位是(). 答案:A 第2题 C语言中标识符只能由字母、数字和下划线3种字符组成,且第一个字符(). 答案:C 第3题 以下程序其输出结果是(). 答案:D 第4题 判断char型变量cl是否为小写字母的正确表达式是(). 答案:D 第5题 以下选项中不正确的实型常量是(). 答案:A 第6题 判断两个字符串是否相等,正确的表达方式是(). 答案:C 第7题 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(). 答案:C 第8题 以下程序的执行结果是(). 答案:C 第9题 以下语句中,循环次数不为10次的语句是(). 答案:A 第10题 以下程序的输出结果是(). 答案:D 第11题 关于return语句,下列正确的说法是(). 答案:A 第12题 若使用一维数组名作函数实参,则以下正确的说法是(). 答案:A 第13题 以下不正确的说法是:C语言规定(). 答案:B 第14题 执行下面程序后,输出结果是(). 答案:A 第15题 下列定义不正确的是(). 答案:C 第16题 若输入ab,程序运行结果为(). 答案:C 第17题 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(). 答案:D 第18题 有定义:char*p1,*p2;则下列表达式中正确合理的是(). 答案:C 第19题 字符串指针变量中存入的是(). 答案:B 第20题 具有相同类型的指针变量p与数组a,不能进行的操作是(). 答案:D 第1题 答案: 第2题 答案: 第1题 答案: 第2题 答案: 第1题 答案: 第2题 答案: 若有错误或疑问,欢迎评论区留言讨论。a = 10;
b = 0;
do
{
b += 2;
a -= 2 + b;
} while (a >= 0);
#include
#include
main()
{
int x, * p, ** q;
x = 10;
p = &x;
q = &p;
printf("%d\n", **q);
}
二、判断 共8题 (共计8分)
int a = 7, b = 9, t; t = (a > b) ? a : b;
for (i = 4; i > 1; i--)for (j = 1; j < i; j++)putchar('#');
s = 6; do s -= 2; while (!s);
char a1[] = "LiMing", a2[10]; strcpy(a2, a1); puts(a2);
三、单选 共20题 (共计20分)
A:函数
B:过程
C:子程序
D:子例程
A:必须为字母
B:必须为下划线
C:必须为字母或下划线
D:可以是字母、数字和下划线中任意一种字符
#include
A:a=%2,d=%5
B:a=2,b=5
C:a=%%d,b=%%5
D:a=%d,b=%d
A:'a'<=cl<='z'
B:(cl>=a)&&(cl<=z)
C:('a'>=cl)||('z'<=cl)
D:(cl>='a')&&(cl<='z')
A:123
B:1e4
C:3.640E-1
D:0.35
A:while(s1= =s2)
B:while(s1=s2)
C:while(strcmp(s1,s2)= =0)
D:while(strcmp(s1,s2)=0)
A:(!E==0)
B:(E>0||E<0)
C:(E==0)
D:(E!=0)
main()
{
int num = 0;
while (num <= 2)
{
num++;
printf("%d,", num);
}
}
A:0,1,2
B:1,2,
C:1,2,3,
D:1,2,3,4,
A: for (i = 1; i < 10; i++);
B: i = 1; do { i++; } while (i <= 10);
C: i = 10; while (i > 0) { --i; }
D: i = 1; m:if (i <= 10) { i++; goto m; }
#include
A:104
B:103
C:003
D:004
A:可以在同一函数中出现多次
B:在主函数中不能出现
C:必须在每个函数中出现
D:只能在除主函数之外的函数中出现一次
A:必须在主调函数中说明此数组的大小
B:实参数组类型与形参数组类型可以不匹配
C:在被调用函数中,不需要考虑形参数组的大小
D:实参数组名与形参数组名必须一致
A:实参可以是常量,变量或表达式
B:形参可以是常量,变量或表达式
C:实参可以为任何类型
D:形参应与其对应的实参类型一致
#include
A:45
B:27
C:18
D:72
A:#define PI 3.141592
B:#define S 345
C:int max(x,y); int x,y; { }
D:static char c;
main()
{
static char a[3];
scanf("%s", a);
printf("%c,%c", a[1], a[2]);
}
A:a,b
B:a,
C:b,
D:程序出错
A:&t[3][2]
B:t[3]
C:&t[1]
D:t[2]
A:p1/=5
B:p1*=p2
C:p1=&p2
D:p1+=5
A:字符串
B:字符串的首地址
C:第一个字符
D:字符串变量
A:p=a;
B:*p=a[0];
C:p=&a[0];
D:p=&a;
四、程序填空 共2题 (共计20分)
题目:函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用
外部(全局)变量c1、c2、c3返回主函数。
例如:当n=123114350时,结果应该为:c1=3 c2=1 c3=2。
#include
=======(答案1)=======
n % 10
=======(答案2)=======
break
=======(答案3)=======
break
功能:输入一个整数,计算它可能是哪两个整数的平方和,并打印
结果数据。
如:34是5和3或3和5的平方和。
#include
=======(答案1)=======
count++
=========或=========
++count
=========或=========
count=count+1
=======(答案2)=======
column--
=========或=========
--column
=========或=========
column=column-1
=======(答案3)=======
row++
=========或=========
++row
=========或=========
row= row + 1
五、程序改错 共2题 (共计20分)
题目:下列给定程序中函数fun的功能是:
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y的值不相等,z和y的值不相等。
例如:当x的值为9,y的值为11,z的值为15时,函数值为-3.50。
#include
=======(答案1)=======
#define FU(m,n) (m)/(n)
=======(答案2)=======
return (value);
题目:fun函数的功能是:先从键盘上输入一个3行3列矩阵的各
个元素的值,然后输出主对角线上的元素之和sum。
请改正程序中的错误,使它能得出正确的结果。
#include "stdio.h"
int fun()
{
int a[3][3], sum;
int i, j;
sum = 0;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < 3; i++)
sum = sum + a[i][j];
printf("sum=%f\n", sum);
}
main()
{
fun();
}
=======(答案1)=======
sum=sum+a[i][i];
=========或=========
sum+=a[i][i];
=======(答案2)=======
printf("sum=%d\n",sum);
六、程序设计 共2题 (共计17分)
题目:公式e=1+1/1!+1/2!+1/3!+......,求 e 的近似值,精度为10的-6次方。
#include
int i = 1;
while (1 / jc >= f)
{
e = e + 1 / jc;
i++;
jc = jc * i;
}
题目:主函数main()中字符串a,b为测试数据,字符串a中字符已
按ASCII码值降序排列,将字符串b中ASCII码为偶数的字符
依次插入到字符串a中,使字符串a中字符仍按ASCII码值降
序排列。再删除字符串a中的重复字符,使相同字符只出现
一次。
编写程序:
1、编写void insert(char a[],char b[])函数,按上述规
则将字符串b中字符插入到字符串a中。
2、编写 void del(char a[])函数,删除字符串a中的重复
字符,使相同字符只出现一次。
#include
void insert(char a[], char b[])
{
int i, j;
int n = 0;
while (a[n]) n++;
for (i = 0; b[i] != '\0'; i++)
{
if (b[i] % 2) continue;
j = n;
while (a[j - 1] < b[i] && j>0)
{
a[j] = a[j - 1];
j--;
}
a[j] = b[i];
n++;
a[n] = '\0';
}
}
void del(char a[])
{
int i = 0, j, k;
for (j = 1; a[j] != '\0'; j++)
if (a[j] != a[i])
{
i++;
a[i] = a[j];
}
a[++i] = '\0';
}