您的当前位置:首页正文

c语言试题及答案

2022-07-05 来源:意榕旅游网


《程序员基本功大赛》试题

(满分100分,考试时间90分钟)

学号:________ 姓名:________ 班级: ________

一 二 三 四 五 总分 一、单项选择题(本题共25小题,每小题2分,共50分)

1. 以下正确的C语言自定义标识符是______.

A. _1a B. 2a_ C. do D。 a.12 2. C语言中,字符型数据在内存中存储形式是_______。

A。 原码 B。 反码 C。 补码 D. ASCII码 3. 在C语言中,形参的缺省存储类是( )

A. auto B。 register C. static D. extern 4. 软件测试的目的是_______. A.证明软件中没有错误 B。改正软件中的错误 C.发现软件中的错误 D.优化程序结构 5。 在C语言中,字符串\"\\\\TOP\\\65\\””的长度是_______.

A。 5 B.7 C. 8 D. 12 6。 设float x,由键盘输入:12。45, 能正确读入数据的输入语句是_________。 A。 scanf(\"%5f\); B. scanf(\"%5d\ C。 scanf(”%f\", x); D。 scanf(”%s”, &x); 7. 十进制数2403转换成十六进制数为_______。

A。 963 B. 369 C。 953 D。 359 8。 C语言程序中,整型常量的书写形式不包括_________。 A. 二进制 B. 八进制 C。 十进制 D. 十六进制

9. C语言函数返回值的类型是由__________决定的。

A.return语句中的表达式类型 B.调用函数的主调函数类型

C.调用函数时临时 D。定义函数时所指定的函数类型

10。操作系统负责管理计算机系统的___,其中包括处理机、存储器、设备和文件。

A.程序 B.文件 C。资源 D.进程 11。数据库系统的核心是( ) A。编译系统 B。数据库 C.操作系统 D.数据库管理系统 12。设#define NUM 1 + 2,则int var = 2 * NUM * 3 — NUM; var的值是多少?

A. 15 B. 19 C。 9 D. 5

13。设int a = 11, b = 2;执行下述程序段后,变量a和b的值分别是_______.

第 1 页

do

{ a /= b++; }while(a > b); A. 1,3 B. 1,4 C。 2,3 D。 2,4 14。在C语言中,下列错误的说法是_______. A。 函数可以递归调用

B。 不允许在函数中再定义函数

C. 递归程序不可能用非递归算法实现

D. 对于continue语句,可以通过改变程序的结构而不使用它 15。计算机硬件可以直接执行的语言是____。 A。符号语言 B.机器语言 C。高级语言 D。汇编语言 16.以下对二维数组a的正确说明是_________。. A。int a[3][]; B。float a[][4]; C.double a[3][4]; D。float a(3)(4);

17.设char s[10] = \"abcd”,t[] = ”12345”;,则s和t在内存中分配的字节数分别是_______.

A.6和5 B。 6和6 C。 10和5 D。 10和6 18.switch(表达式)语句中的“表达式”,允许的类型是_________。 A.float, int B.float, int, char C. int, char D. char, double 19.继承机制的作用是( ) A。信息隐藏 B.数据封装 C.定义新类 D。数据抽象 20.下列属于文件包含的命令是_________。 A。 #define N 25 B. #endif C。 #include 21.网络拓扑设计的优劣将直接影响着网络的性能、可靠性与_______。 A。网络协议 B.通信费用 C。设备种类 D。主机类型

22.若有以下定义和语句:char strl[] = \"string”, str2[5]; 则用以复制字符串的正确方法是_______。 A。 strcpy(str2, ”Hello”); C。 str2 = str1; B. strcpy(strl, ”Hello”); D. str1 = \"Hello”; 23. 计算机的外围设备是指_____。

A.输入/输出设备 B. 外存设备

C.远程通信设备 D。 除了CPU和主存以外的所有设备

24.计算机网络建立的主要目的是实现计算机资源的共享,计算机资源主要指计算机 ________.

A。软件与数据库 B。服务器、工作站与软件 C。硬件、软件与数据 D.通信子网与资源子网 25。下列描述中不正确的是_______.

第 2 页

A。 字符型数组中可以存放字符串

B。 可以对字符型数组进行整体输入、输出 C。 可以对实型数组进行整体输入、输出

D。 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

二、填空题(本题共10小题,每小题2分,共20分)

26。 一个C语言程序的执行起点是___________。

27。冯·诺依曼结构将计算机分为_______、_______、______、输入设备和输出设备五部分.

28。getchar函数可以接收_______个字符,输入数字也按字符处理。

29。若函数调用语句f(a, b, f(a + b, a - b, b));,则函数f的参数个数是______。

30.若用数组名作为函数调用的实参,则实参传递给形参的是______。

31.已知英文字母符号A的ASCII码为65,英文字母符号F的ASCII码为_____ 已知数字符号9的ASCII码为57,数字符号5的ASCII码为_______. 32.在C语言中,表示逻辑\"真\"值用_______。 33。 设char s[] = {”E_mail”};,则执行printf(\"%d\\n\strlen(s));后输出的值是_____。

34.scanf函数是一个标准库函数,它的函数原型在头文件________中。 35。设int a[3][4] = {{1, 2, 5, 3}, {2, 4, 7, 9}, {3, 6, 5, 8}};则表达式a[1][2] + a[2][3]的值是________。

三、判断题(本题共5小题,每小题2分,共10分,打√或×)

36。设char ch = 97;printf(”%d\", (int)ch);输出的结果一定是97。( ) 37.在printf函数中,不同系统对输出表列的求值顺序不一定相同,TC是按从右到左进行的。( )

38.逻辑运算符的优先级别高于算术运算符。( )

39。C语言中可以把一个字符串赋给一个字符变量.( ) 40.getchar函数的功能是接收从键盘输入的一串字符.( )

四、程序修改题(本题共1小题,每空3分,共9分)

请在注释“ERROR\"处修改程序中的错误,使它能得出正确的结果。注意:不要改动main 函数,不得增行或删行,也不得更改程序结构! 41.利用函数求两个整数的最大公约数。 #include int gcd(int a, int b); int main() {

int a, b, abd;

第 3 页

printf(”intput data a b:\\n\");

scanf(”%d,%d\; /* ERROR1 */_________ abd = gcd(a, b);

printf(\"abd=%d\\n\", abd); }

int gcd(int x, int y); /* ERROR2 */_________ {

int t;

if(x 〈 y) {t = x; x = y; y = t;}

while(y != 0) {t = x % y; x = y; x = t; } /* ERROR3 */_________ return x; }

五、编程题(本题共1小题,共11分)

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多参

考答案: ========== 一、单项选择题

1.A 2。D 3。 D 4. C 5。B 8.A 9.D

10。C 11。D 12。A 13.B 14.C 17.D 18.C

19。C 20.C 21. B 22。B 23.D 二、填空题 26. 主函数

27。 运算器、控制器、存储器 28。 单或1 29。 3 30。 地址

6。A

7。A

16.C25。C

15.B 24.C

第 4 页

31. 70,52 32. 非零数 33. 6

34。 stio.h 35. 15 三、判断题

36。对 37。对 38。错 39.错 40.错

四、程序修改题

41。 scanf(\"%d,%d”,a,b)  scanf(”%d,%d\) int gcd(int x,int y);  int gcd(int x,int y) x=t  y=t 五、编程题

#include \"stdio.h\" #include \"conio.h” main() {

long f1,f2; int i; f1=f2=1;

for(i=1;i〈=20;i++) {

printf(\"%12ld %12ld”,f1,f2);

if(i%2==0) printf(”\\n”); /*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ }

getch(); }

42.少?

第 5 页

因篇幅问题不能全部显示,请点此查看更多更全内容