c语言试题及答案[2].docx
程序员根本功大赛试题总分值100分,考试时间90分钟学号:_ 姓名:_ 班级: _一二三四五总分一、单项选择题此题共25小题,每题2分,共50分1. 以下正确的C语言自定义标识符是_。2. C语言中,字符型数据在内存中存储形式是_。A. 原码 B. 反码 C. 补码 D. ASCII码3. 在C语言中,形参的缺省存储类是 A. auto B. register C. static D. extern4. 软件测试的目的是_。5. 在C语言中,字符串"TOPt65""的长度是_。A. 5 B7 C. 8 D. 126. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是_。 A. scanf("%5f", &x); B. scanf("%5d", &x); C. scanf("%f", x);D. scanf("%s", &x);7. 十进制数2403转换成十六进制数为_。 A. 963 B. 369 C. 953 D. 3598. C语言程序中,整型常量的书写形式不包括_。 A. 二进制 B. 八进制 C. 十进制 D. 十六进制9. C语言函数返回值的类型是由_确定的。10.操作系统负责管理计算机系统的_,其中包括处理机、存储器、设备和文件。 A.程序 B.文件 C.11.数据库系统的核心是 #define NUM 1 + 2,那么int var = 2 * NUM * 3 - NUM; var的值是多少? A. 15 B. 19 C. 9 D. 513.设int a = 11, b = 2;执行下述程序段后,变量a和b的值分别是_。 do a /= b+; while(a > b); A. 1,3 B. 1,4 C. 2,3 D. 2,414.在C语言中,以下错误的说法是_。 A. 函数可以递归调用 B. 不允许在函数中再定义函数 C. 递归程序不行能用非递归算法实现 D. 对于continue语句,可以通过变更程序的构造而不运用它15.计算机硬件可以干脆执行的语言是_。16.以下对二维数组a的正确说明是_。 A.int a3; B.float a4; C.double a34; D.float a(3)(4);17.设char s10 = "abcd",t = "12345",那么s和t在内存中支配的字节数分别是_。 A6和5 B. 6和6 C. 10和5 D. 10和618.switch(表达式)语句中的“表达式,允许的类型是_。 Afloat, intBfloat, int, char C. int, charD. char, double19.继承机制的作用是( )20.以下属于文件包含的嘱咐是_。 A. #define N 25B. #endif C. #include <stdio.h>D. #else21.网络拓扑设计的优劣将干脆影响着网络的性能、牢靠性及_。 A.网络协议B.通信费用C.设备种类D.主机类型 22. 假设有以下定义和语句:char strl = "string", str25; 那么用以复制字符串的正确方法是_。 A. strcpy(str2, "Hello"); C. str2 = str1; B. strcpy(strl, "Hello"); D. str1 = "Hello" 23. 计算机的外围设备是指_。 C.远程通信设备 D. 除了CPU和主存以外的全部设备24.计算机网络建立的主要目的是实现计算机资源的共享,计算机资源主要指计算机 _。 A.软件及数据库 B.效劳器、工作站及软件 C.硬件、软件及数据 D.通信子网及资源子网 25.以下描绘中不正确的选项是_。 A. 字符型数组中可以存放字符串 B. 可以对字符型数组进展整体输入、输出 C. 可以对实型数组进展整体输入、输出 D. 不能在赋值语句中通过赋值运算符“=对字符型数组进展整体赋值 二、填空题此题共10小题,每题2分,共20分26. 一个C语言程序的执行起点是_。·诺依曼构造将计算机分为_、_、_、输入设备和输出设备五部分。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("%dn", strlen(s);后输出的值是_。34.scanf函数是一个标准库函数,它的函数原型在头文件_中。35.设int a34 = 1, 2, 5, 3, 2, 4, 7, 9, 3, 6, 5, 8;那么表达式a12 + a23的值是_。三、推断题此题共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 <stdio.h>int gcd(int a, int b);int main()int a, b, abd;printf("intput data a b:n");scanf("%d,%d",a, b); /* ERROR1 */_abd = gcd(a, b);printf("abd=%dn", 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.A2.D3. D4. C5.B6.A7.A8.A9.D10.C11.D12.A13.B14.C15.B19.C20.C21.B22.B23.D24.C25.C 二、填空题26. 主函数27. 运算器、限制器、存储器28. 单或129. 330. 地址31. 70,5232. 非零数33. 634. 35. 15 三、 推断题 四、 程序修改题41. scanf("%d,%d",a,b) à scanf("%d,%d",&a,&b) 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. 少?