[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷31及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷31及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷31及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 31及答案与解析 一、选择题 1 以下能正确定义且赋初值的语句是 ( A) int n1=n2=10; ( B) char c=32; ( C) float f=f+1 1; ( D) double x=12 3E2 5; 2 设有定义: int n1=0, n2, *p=n2, *q=n1;,以下赋值语句中与 n2=n1;语句等价的是 ( A) *p=*q; ( B) p=q; ( C) *p=n1; ( D) p=*q; 3 以下函数的功能是:通过键盘输入数据,为数组中的 所有元素赋值。 #include #define N 10 void
2、 fun(int xN) int i=0; while(i #define N 5 Void fun(int xN) int m; for(m=N-1; m=0; m-)scanf(“ d“, ): ( A) x+m ( B) xm+1 ( C) x+(m+) ( D) x+m 5 以下选项中,合法的是 ( A) char name10; name=“char“; ( B) char str15=“pass“, str26; str2=str1; ( C) char str3=d, e, b, u, g, 0; ( D) char str4; str4=“hello world“; 6 以下叙
3、述中正确的是 ( A)赋值语句是一种执行语句,必须放在函数的可执行部分 ( B) scanf和 printf是 C语言提供的输入和输出语句 ( C)由 printf输出的数据都隐含左对齐 ( D)由 printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的 7 有以下程序 main()int a=3; a+=a-=a*a: printf(“ d n“, a); 程序的输出结果是 ( A) 9 ( B) 3 ( C) -12 ( D) 0 8 设有定义语句 int x6=2, 4, 6, 8, 5, 7, *p=x, i; 要求依次输出 x数组 6个元素中的值不能完成此操作的
4、语句是 ( A) for(i=0; ic?c: k; 执行程序段后, k的值是 ( A) 3 ( B) 2 ( C) 1 ( D) 0 10 执行以下程序段后, w的值为 int W=A, x=14, y=15; w=(xy)&(w main()int b=10, a=-11; a =b =4; printf(“ d d n“, a, b); 则程序的输出结果是 ( A) 1 2 ( B) =1 -2 ( C) -1 2 ( D) 1 -2 15 有以下程序 main()int a=2, c=5; printf(“a= d, b= d n“, a, c); 程序的输出结果是 ( A) a= 2
5、, b= 5 ( B) a= d, b= d ( C) a=2, b=5 ( D) a= d, b= d 16 有以下程序 main()char a, b, c, d; scanf(“ c c“, &a, &b); c=getchar(); d=getchar(); printf(“ c c c c n“, a, b, c, d、 ); 当执行程序时,按下列方式输入数据 (从第 1列开始,代表回车,注意:回车也是一个字符 ) 12 34则输出结果是 ( A) 12 ( B) 1234 ( C) 12 3 ( D) 12 34 17 有以下程序段 int n, t=1, s=0; scanf(“
6、 d“, &n); dos=s+; t=t一 2; while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是 ( A)任意正奇数 ( B)任意负偶数 ( C)任意正偶数 ( D)任意负奇数 18 若变量已正确定义为 im型,要通过语句 scanf(“ d, d, d“, &a, &b,&c);给 a赋值 1、给 b赋值 2、给 c赋值 3,以下输入形式中错误的是 (注: 代表一个空格符 ) ( A) 1, 2, 3 ( B) 1, D2, 3 ( C) 1, 2, 3 ( D) 123 19 设变量均已正确定义,若要通过 scanf(“ d c d c“, &a1, &c1,
7、 &a2,&c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是 (注: 代表空格字符 ) ( A) 10X20Y ( B) 10X20Y ( C) 10X 20Y ( D) 10X20Y 20 设有定义: int a; float b:执行 scanf(“ 2d f“, &a, &b);语句时,若从键盘输入 876 543 0则 a和 b的值分别是 ( A) 876和 543 0 ( B) 87和 6 0 ( C) 87和 543 0 ( D) 76和 543 0 21 若有定义: int a, b;通过语句 scanf(“
8、 d; d“, &a, &b);能把整数 3赋给变量 a, 5赋给变量 b的输入数据是 ( A) 3, 5 ( B) 3 5 ( C) 3; 5 ( D) 35 22 若有定义 int a; float b; double c;程序运行时输入: 3 4 5能把值 3输入给变量 a、 4输入给变量 b、 5输入给变量 c的语句是 ( A) scanf(“ d lf lf“, &a, &b, &c); ( B) scanf(“ d f lf“, &a, &b, &c); ( C) scanf(“ d f f“, &a, &b, &c); ( D) scanf(“ lf lf lf“, &a, &b
9、, &c); 23 设有定义: double a, b, c;若要求通过输入分别给 a、 b、 c输入 1、 2、 3,输入形式如下 (注:此处 代表一个空格 )1 02 03 0则 能进行正确输入的语句是 ( A) scanf(“ lf lf lf“, a, b, c); ( B) scantf(“ f f f“, &a, &b, &c); ( C) scanf(“ lf lf lf“, &a, &b, &c); ( D) scanf(“ 5 1lf 5 1lf 5 1lf“, &a, &b, &c); 24 以下叙述中正确的是 ( A)当用 scanf从键盘输入数据时,每行数据在没按下回车
10、键 (Enter键 )前,可以任意修改 ( B)花括号对 只能用来表示函数的开头和结尾,不能用于其他目的 ( C)空语句就是指程 序中的空行 ( D)复合语句在语法上包含多条语句,其中不能定义局部变量 25 以下叙述中正确的是 ( A)在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( B)在使用 scanf函数输入整数或实数时,输入数据之间只能用空格来分隔 ( C)在 printf函数中,各个输出项只能是变量 ( D)使用 printf函数无法输出百分号 26 以下叙述中正确的是 ( A)在 scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符 ( B)
11、只能在 printf函数中指定输入数据的宽度 ,而不能在 scanf函数中指定输入数据占的宽度 ( C) scanf函数中的字符串,是提示程序员的,输入数据时不必管它 ( D)复合语句也被称为语句块,它至少要包含两条语句 27 有以下程序 #include main()int a1, a2; char c1, c2; scanf(“ d c d c“, &a1, &c1, &a2, &c2); printf(“ d, c, d, c“, a1, c1, a2, c2); 若想通过键盘输入,使得 a1的值为 12, a2的值为 34, c1的值为字符 a, c2的值为字符 b,程序输出结果是:
12、12, a, 34, b则正确的输入格式是 (以下 代表空格,代表回车 ) ( A) 12a34b ( B) 12, a, 34, b ( C) 12a34b ( D) 12a34b 28 有以下程序 #include main()char c1, c2, c3, c4, c5, c6; scanf(“ c c c c“, &c1, &c2, &c3, &c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“ c c n“, c5, c6); 程序运行后,若从键盘输入 (从第 1列开始 )123 45678则输出结
13、果是 ( A) 1256 ( B) 1278 ( C) 1245 ( D) 1267 29 若有定义语句: double x, y, *px, *py;执行 px=&x; py=&y;正确的输入语句是 ( A) scanf(“ f f“ &x, &y); ( B) scanf(“ f f“, x, y); ( C) scanf(“ lf le“, px, py); ( D) scanf(“ lf lf“, x, y); 30 以下程序段完全正确的是 ( A) int k, *p=&k; scanf(“ d“, p); ( B) int*p; scanf(“ d“, p); ( C) int*p
14、; scanf(“ d“, &p); ( D) int k, *p; *p=&k; scanf(“ d“, p); 31 若在定义语句: int a, b, c *p=&c;接着执行以下选项中的语句,则能正确执行的语句是 ( A) scanf(“ d d d“, a, b, c); ( B) scanf(“ d“, a, b, c); ( C) scanf(“ d“, p); ( D) scanf(“ d“, &p); 32 有以下程序段 int j; float y; char name50; scanf(“ 2d f s“, &j, &y, name); 当执行上述程序段,从键盘上输入 5
15、5566 7777abc后, y的值为 ( A) 55566 0 ( B) 7777 0 ( C) 566 0 ( D) 566777 0 33 有以下程序段 char name20; Int num; scanf(“name= s num= d“, name, &num); 当执行上述程序段,并从键盘输入: name=Lili num=1001后, name的值为 ( A) name=Lili ( B) Lili num= ( C) name=Lili num=1001 ( D) Lili 34 s1和 s2已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句
16、S;则以下选项中正确的是 ( A) if(s1s2)S; ( B) if(strcmp(s1, s2)S; ( C) if(strcmp(s2, s1)0、 1 S; ( D) if(strcp(s1, s2)0)S; 35 把以卞四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是 ( A) k 2 ( B) k 2=1 ( C) (k 2)!=0 ( D) !k 2=1 国家二级 C语言机试( C语言程序设计)模拟试卷 31答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题主要考查变量的定义和赋值, C语言中变量的定义形式为:类型说明符变量名
17、=初始值: 选项 A中, n1和 n2只能单独赋初值;选项 B正确,定义了一个字符变量 c,初值为 32;选项 C错误,初值设置自身不能参与运算;选项 D中字母 E后面的指数必须是整数。 【知识模块】 C语言程序设计 2 【正确答案】 A 【试题解析】 本题考查指针的使用。指针 p和 q分别指向变量 n2和 n1, n2=n1可以用指针来代替,即 *p代替 n2, *q代替 n1。 【知识模块】 C语言程序设计 3 【正确答案】 C 【试题解析】 本题考查数组和 scanf函数的使用。程序通过、 while循 环来给数组元素赋值,赋值语句通过调用 scanf函数来实现。 scanf函数从键盘接
18、收数据,第二个参数是数据保存的地址因此选项 B和选项 D不是地址,错误。选项 A和选项 C是地址,但是选项 A的 i值不会发生变化,循环体内每次都是给同一个元素赋值,不满足要求,选项 C正确。 【知识模块】 C语言程序设计 4 【正确答案】 A 【试题解析】 本题考查数组和 scanf函数的使用。程序通过 for循环来给数组元素赋值,赋值语句通过调用 scanf函数来实现。 scanf函数从键盘接收数据,函数的第二个参数是数据保存的 地址,因此选项 B和选项 D不是地址,错误。选项 A和选项 C是地址,但是选项 C的 m值会 +自增,然后 for循环里面又 m一自减,会导致死循环,不满足要求,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 31 答案 解析 DOC
