2003年9月全国计算机等级考试二级C语言笔试试题及答案
- 格式:doc
- 大小:57.50 KB
- 文档页数:14
2003年9月全国计算机等级考试二级笔试试卷公共基础知识和Visual Basic语言程序设计(考试时间90分钟,满分100分)一、选择题((1)~(20)每小题2分,(21)~(30)每小题3分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)以下叙述中错误的是。
A)Visual Basic是事件驱动型可视化编程工具B)Visual Basic应用程序不具有明显的开始和结束语句C)Visual Basic工具箱中的所有控件都具有宽度(Width)和高度(Height)属性D)Visual Basic中控件的某些属性只能在运行时设置(2)以下叙述中错误的是。
A)在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件B)以.BAS为扩展名的文件是标准模块文件C)窗体文件包含该窗体及其控件的属性D)一个工程中可以含有多个标准模块文件(3)以下叙述中错误的是。
A)双击鼠标可以触发DblClick事件B)窗体或控件的事件的名称可以由编程人员确定C)移动鼠标时,会触发MouseMove事件D)控件的名称可以由编程人员设定(4)以下不属于Visual Basic系统的文件类型是。
A).frm B) .bat C).vbg D).vbp(5)以下叙述中错误的是。
A)打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件B)保存Visual Basic程序时,应分别保存窗体文件及工程文件C)Visual Basic应用程序只能以解释方式执行D)事件可以由用户引发,也可以由系统引发(6)以下能正确定义数据类型TelBook的代码是。
A)Type TelBook B)Type TelBookName As String*10 Name As String*10TelNum As Integer TelNum As IntegerEnd Type End TelBookC)Type TelBook D)Typedef TelBookName String*10 Name String*10TelNum Integer TelNum IntegerEnd Type TelBook End Type(7)以下声明语句中错误的是。
一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)程序流程图中带有箭头的线段表示的是 CA)图元关系 B)数据流 C)控制流 D)调用关系(2)下面不属于软件设计原则的是 CA)抽象 B)模块化 C)自底向上 D)信息隐蔽(3)下列选项中,不属于模块间耦合的是 CA)数据耦合 B)标记耦合 C)异构耦合 D)公共耦合(4)下列叙述中,不属于软件需求规格说明书的作用的是 DA)便于用户、开发人员进行理解和交流 B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据 D)便于开发人员进行需求分析(5)算法的时间复杂度是指CA)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数(6)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是BA)堆排序 B)直接插入排序 C)快速排序 D)B)和C)(7)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是BA)ABCED B)DCBEA C)DBCEA D)CDABE(8)数据库设计包括两个方面的设计内容,它们是AA)概念设计和逻辑设计 B)模式设计和内模式设计 C)内模式设计和物理设计D)结构特性设计和行为特性设计(9)关系表中的每一横行称为一个AA)元组 B)字段 C)属性 D)码(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字 (键或码)为 CA)课号,成绩 B)学号,成绩 C)学号,课号 D)学号,姓名,成绩(11)以下不正确的叙述是 DA)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(12)请选出可用作C语言用户标识符的是BA)void,define,WORD B)a3_b3,_123,IF C)FOR,--abc,CaseD)2a,Do,Sizeof(13)以下选项中,不能作为合法常量的是BA)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0(14)在C语言中,运算对象必须是整型数的运算符是AA)% B)\ C)%和\ D)**(15)若变量均已正确定义并赋值,以下合法的C语言赋值语句是AA)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;(16)有以下程序段char ch; int k;ch=′a′; k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是 DA)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是 BA)kk>=′A′&&kk<=′Z′ B)!(kk>=′A′||kk<=′Z′) C)(kk+32)>=′a′&&(kk+32)<=′Z′ D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为"真"的表达式是 BA)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1)(19)若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是 B A)(exp==0) B)(exp!=0) C)(exp==1) D)(exp!=1)(20)以下不正确的定义语句是 BA)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′\x10′, ′xa′, ′\x8′};(21)下列程序执行后的输出结果是 Bmain(){ int a[3][3], *p,i;p=&a[0][0];for(i=1; i<9; i++)p[i]=i+1;printf("%d\n",a[1][2];)A)3 B)6 C)9 D)随机数(22)设有以下程序段 Bint x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次(23)下面程序段的运行结果是 Cchar *s="abcde";s+=2;printf("%d",s);A)cde B)字符′c′ C)字符′c′的地址 D)无确定的输出结果(24)阅读下列程序,则执行后的结果为 A#include "stdio.h"main(){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}A)3e,6 B)62,5 C)56,5 D)3E,6(25)下面判断正确的是 CA)char *a="china";等价于 char *a;*a="china"; B)char str[5]={"china"};等价于char str[]={"china"};C)char *s="china";等价于 char *s;s="china"; D)char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";精品文档。
全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。
根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。
A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。
全国计算机等级考试二级C语言笔试题库第一套一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n—1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void,define, WORD B)a3_3,_123,Car C)For,-abc, IF Case D)2a,DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)—080 C)—8e1。
2002年4月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题((1)—(40)题每小题1分,(41)—(50)题每小题2分,共和60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 在计算机中,一个字长的二进制位数是A) 8 B) 16 C) 32 D) 随CPU的型号而定(2) 计算机网络的突出优点是A) 速度快B) 资源共享 C) 精度高D) 容量大(3) 计算机网络能传送的信息是:A) 所有的多媒体信息B) 只有文本信息C) 除声音外的所有信息D) 文本和图像信息(4) 切断计算机电源后,下列存储器中的信息会丢失的是:A) RAM B) ROM C) 软盘D) 硬盘(5) 十进制数127转换成二进制数是A) 11111111 B) 01111111 C) 10000000 D) 11111110(6) 要想打印存放在当前盘当前目录上所有扩展名为.TXT 的文件内容, 应该使用的DOS命令为A) DIR *.TXT>PRN B) TYPE *.TXT>PRNC) COPY *.TXT PRN D) COPY *.TXT>PRN(7) 将当前盘当前目录及其子目录中的全部文件 (总量不足 1.2MB) 复制到一张空的A盘的根目录下,应该使用的DOS命令为A) XCOPY *.*A:\ /M B) XCOPY *.*A:\ /SC) XCOPY *.*A:\ /P D) XCOPY *.*A:\ /A(8) 在C盘根目录下执行PROMPT $p$g命令之后,DOS的提示符变为A) C:> B) C:\> C) C> D) C:\(9) DOS命令 "COPY CON DISP"中的CON代表A) 子目录 B) 磁盘文件 C) 键盘 D) 显示器(10) 结构化程序设计所规定的三种基本控制结构是A) 输入、处理、输出B) 树形、网形、环形C) 顺序、选择、循环D) 主程序、子程序、函数(11) 要把高级语言编写的源程序转换为目标程序,需要使用A) 编辑程序B) 驱动程序C) 诊断程序D) 编译程序(12) 英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为A) 50 B) 66 C) 52 D) 68(13) Windows环境下,PrintScreen键的作用是A) 复制当前窗口到剪贴板B) 打印当前窗口的内容C) 复制屏幕到剪贴板 D) 打印屏幕内容(14) 在Windows环境下,为了终止应用程序的运行,应A) 关闭该应用程序窗口 B) 最小化该应用程序窗口C) 双击该应用程序窗口的标题栏 D) 将该应用程序窗口移出屏幕(15) 下列各带有通配符的文件名中,能代表文件XYZ.TXT的是A) *Z.? B) X*.* C) ?Z,TXT D) ?.?(16) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为A) 1.4 B) 1 C) 2.0 D) 2(17) 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是A) a的值是字符C B) a的值是浮点型C) 不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上1。
计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题(每题2分,共40分)1. 下列关于C语言的叙述中,错误的是()。
A. C语言是一种高级语言B. C语言是一种面向过程的语言C. C语言是一种面向对象的语言D. C语言具有很好的移植性答案:C2. 在C语言中,以下哪个选项是合法的标识符?()A. 2variableB. _variableC. variable2D. variable$答案:C3. 下列关于C语言中变量的叙述,正确的是()。
A. 变量必须先声明后使用B. 变量的类型不能改变C. 变量的类型可以改变D. 变量的类型和存储位置可以任意指定答案:A4. 在C语言中,以下哪个选项是正确的整型常量?()A. 0x12B. 0x12.5C. 0x12LD. 0x12.5L5. 在C语言中,以下哪个选项是正确的浮点型常量?()A. 3.14B. 3.14e2C. 3.14E-2D. 3.14e-2.5答案:C6. 在C语言中,以下哪个选项是正确的字符常量?()A. 'a'B. "a"C. 'ab'D. '0'答案:A7. 在C语言中,以下哪个选项是正确的字符串常量?()B. 'Hello'C. "Hello""World"D. 'Hello''World'答案:A8. 在C语言中,以下哪个选项是正确的数组声明?()A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A9. 在C语言中,以下哪个选项是正确的函数声明?()A. int add(int a, int b);B. int add();C. int add(int, int);D. int add(int a, b);答案:A10. 在C语言中,以下哪个选项是正确的指针声明?()A. int p;B. int p[];C. int (p)[];D. int p[5];答案:A11. 在C语言中,以下哪个选项是正确的结构体声明?()A. struct Point {int x, y;};B. struct {int x, y;} Point;C. struct Point {int x; int y;};D. struct {int x; int y;} Point;答案:C12. 在C语言中,以下哪个选项是正确的联合体声明?()A. union Data {int i; float f;};B. union {int i; float f;} Data;C. union Data {int i; float f;} data;D. union {int i; float f;} data;答案:C13. 在C语言中,以下哪个选项是正确的枚举类型声明?()A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE} Color;C. enum Color {RED, GREEN, BLUE} color;D. enum {RED, GREEN, BLUE} color;答案:A14. 在C语言中,以下哪个选项是正确的宏定义?()A. define PI 3.14B. define PI = 3.14C. define PI 3.14;D. define PI 3.14答案:D15. 在C语言中,以下哪个选项是正确的条件编译?()A. if defined(_DEBUG)B. ifdef _DEBUGC. ifndef _DEBUGD. if _DEBUG答案:B16. 在C语言中,以下哪个选项是正确的预处理指令?()A. include "stdio.h"B. include <stdio.h>C. include "stdio.h" include <stdio.h>D. include <stdio.h> include "stdio.h"答案:B17. 在C语言中,以下哪个选项是正确的文件包含?()A. include "stdio.h"B. include <stdio.h>C. include "stdio.h" include <stdio.h>D. include <stdio.h> include "stdio.h"答案:B18. 在C语言中,以下哪个选项是正确的文件操作?()A. FILE fp = fopen("file.txt", "r");B. FILE fp = fopen("file.txt", "w");C. FILE fp = fopen("file.txt", "a");D. FILE fp = fopen("file.txt", "b");答案:A19. 在C语言中,以下哪个选项是正确的文件读写?()A. fprintf(fp, "%d", num);B. fscanf(fp, "%d", &num);C. fwrite(&num, sizeof(int), 1, fp);D. fread(&num, sizeof(int), 1, fp);答案:A20. 在C语言中,以下哪个选项是正确的文件关闭?()A. fclose(fp);B. close(fp);C. fclose(fp);D. fclose(fp);答案:A二、填空题(每题2分,共20分)21. 在C语言中,整型常量可以用____、____、____三种进制表示。
为⼤家收集整理了《2003年9⽉计算机等级考试⼆级C语⾔试题及答案》供⼤家参考,希望对⼤家有所帮助⼀、选择题((1)~(40)每⼩题1分,(41)~(55)每⼩题2分,共60分) 下列各题 A、B、C、D.四个选项中,只有⼀个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) ⽤8位⽆符号⼆进制数能表⽰的⼗进制数为 A.127 B.128 C.255 D.256 (2) 在64位⾼档微机中,⼀个字长所占的⼆进制位数为 A.8 B.16 C.32 D.64 (3) 在Windows环境下,为了复制⼀个对象,在⽤⿏标拖动该对象时应同时按住 A.Alt键 B.Esc键 C.Shift键 D.Ctrl键 (4) 在Windows菜单中,暗淡(灰⾊)的命令项表⽰该命令 A.暂时不能⽤ B.正在执⾏ C.包含下⼀层菜单 D.包含对话框 (5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为 A.TYPE B.TYPE/H C.TYPE/* D.TYPE/? (6) 下列选项中,能作为合法DOS⽂件名的是 A.ANP/A.DAT B.ABCCOM C.ECD.BASIC D.XY+Z.TXT (7) 下列叙述中正确的是 A.在Windows环境下,化的窗⼝是不能移动的 B.在Windows环境下,应⽤程序窗⼝最⼩化后,该应⽤程序暂停执⾏ C.在Windows环境下,只有最⼩化的窗⼝才能关闭 D.在Windows环境下,不能关闭化的窗⼝ (8) 在Windows环境下,⼯具栏中的复制按钮是 A.打印机图标 B.剪⼑标志 C.复制标志 D.粘贴标志 (9) 在Windows98环境下,若要将整个屏幕上显⽰的内容存⼊剪贴板,可以按 A.Ctrl+PrintScreen键 B.Alt+PrintScree键 C.Shift+PrintScreen键 D.PrintScreen键 (10) ⽬前,计算机病毒扩散最快的途径是 A.通过软件复制 B.通过络传播 C.通过磁盘考贝 D.运⾏游戏软件 (11) 以下叙述中正确的是 A.C语⾔⽐其他语⾔⾼级 B.C语⾔可以不⽤编译就能被计算机识别执⾏ C.C语⾔以接近英语国家的⾃然语⾔和数学语⾔作为语⾔的表达形式 D.C语⾔出现的最晚,具有其他语⾔的⼀切优点 (12) C语⾔中⽤于结构化程序设计的三种基本结构是 A.顺序结构、选择结构、循环结构 B.if、switch、break C.for、while、do-while D.if、for、continue (13) 在⼀个C程序中 A.main函数必须出现在所有函数之前 B.main函数可以在任何地⽅出现 C.main函数必须出现在所有函数之后 D.main函 (14) 下列叙述中正确的是 A.C语⾔中既有逻辑类型也有集合类型 B.C语⾔中没有逻辑类型但有集合类型 C.C语⾔中有逻辑类型但没有集合类型 D.C语⾔中既没有逻辑类型也没有集合类型 (15) 下列关于C语⾔⽤户标识符的叙述中正确的是 A.⽤户标识符中可以出现在下划线和中划线(减号) B.⽤户标识符中不可以出现中划线,但可以出现下划线 C.⽤户标识符中可以出现下划线,但不可以放在⽤户标识符的开头 D.⽤户标识符中可以出现在下划线和数字,它们都可以放在⽤户标识符的开头(16) 若有以下程序段(n所赋的是⼋进制数) int m=32767,n=032767 printf("%d,%o/n",m,n); 执⾏后输出结果是 A.32767,32767 B.32767,032767 C.32767,77777 D.32767,077777 (17) 下列关于单⽬运算符++、--的叙述中正确的是 A.它们的运算对象可以是任何变量和常量 B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D.它们的运算对象可以是char型变量、int型变量和float型变量 (18) 若有以下程序段 int m=0xabc,n=0xabc; m-=n; printf("%X\n",m); 执⾏后输出结果是 A.0X0 B.0x0 C.0 D.0XABC (19) 有以下程序段 int m=0,n=0; char c='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输⼊:10A10<回车>,则输出结果是: A.10,A,10 B.10,a,10 C.10,a,0 D.10,A,0 (20) 有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执⾏后输出结果是 A.011122 B.012 C.012020 D.120 (21) 有以下程序 main() { int i=1,j=1,k=2; if((j++‖k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执⾏后输出结果是 A.1,1,2 B.2,2,1 C.2,2,2 D.2,2,3 (22) 有以下程序 main() { int a=5,b=4,c=3,d=2; if(a>b> C. printf("%d\n", D.; else if((c-1>= D.==1) printf("%d\n",d+1); else printf("%d\n",d+2) } 执⾏后输出结果是 A.2 B.3 C.4 D.编译时有错,⽆结果 (23) 有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i];i++;} printf("%d\n",k); } 执⾏后输出结果是 A.58 B.56 C.45 D.24 (24) 有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s +=i; }while(i<7); printf("%d\n",s); } 执⾏后输出结果是 A.16 B.12 C.28 D.21 (25) 有以下程序 main() { int i=10,j=1; printf("%d,%d\n",i--,++j); } 执⾏后输出结果是 A.9,2 B.10,2 C.9,1 D.10,1(26) 有以下程序 main() { char a,b,c,*d; a='\'; b='\xbc'; c='\0xab'; d="\017"; print("%c%c%c\n",a,b,c,* D.; } 编译时出现错误,以下叙述中正确的是 A.程序中只有a='\';语句不正确 B.b='\xbc';语句不正确 C.d="\0127";语句不正确 D.a='\';和c='\0xab';语句都不正确 (27) 有以下程序 int fl(int x,int y) { return x>y?x:y; } int f2(int x,int y) { return x>y?y:x; } main() { int a=4,b=3,c=5,d,e,f; d=f1(a, B.; d=f1(d, C.; e=f2(a, B.; e=f2(e, C.; f=a+b+c-d-e; printf("%d,%d,%d\n",d,f,e); } 执⾏后输出结果是 A.3,4,5 B.5,3,4 C.5,4,3 D.3,5,4 (28) 有如下程序 void f(int x,int y) { int t; if(x } main() { int a=4,b=3,c=5; f(a, B.; f(a, C.; f(b, C.; printf("%d,%d,%d\n",a,b, C.; } 执⾏后输出结果是 A.3,4,5 B.5,3,4 C.5,4,3 D.4,3,5 (29) 若有以下定义和语句 #include int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是 A.*q=0; B.w=p; C.*p=a; D.*p=*w; (30) 有以下程序 int *f(int *x,int *y) { if(*x<*y) return x; else return y; } main() { int a=7,b=8,*p,*q,*r}; } 执⾏后输出结果是 A.7,8,8 B.7,8,7 C.8,7,7 D.8,7,8 (31) 有以下程序 main() { char *s[]={"one","two","thre e " } , * p ; b r b d s f i d = " 3 4 7 " > 0 0 p = s [ 1 ] ; b r b d s f i d = " 3 4 8 " > 0 0 p r i n t f ( " % c , % s \ n " , * ( p + 1 ) , s [ 0 ] ) ; b r b d s f i d = " 3 4 9 " > 0 0 }。
2003年9月全国计算机等级考试二级C语言笔试试卷一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)(1)在计算机中,一个字节所包含二进制位的个数是A)2 B)4 C)8 D)16(2)在多媒体计算机中,CD-ROM属于A)存储媒体 B)传输媒体 C)表现媒体 D)表示媒体(3)在DOS系统中,带有通配符的文件名*.*表示A)硬盘上的全部文件 B)当前盘当前目录中的全部文件C)当前盘上的全部文件 D)根目录中的全部文件(4)十六进制数100转换为十进制数为A)256 B)512 C)1024 D)64(5)能将高级语言编写的源程序转换为目标程序的软件是A)汇编程序 B)编辑程序 C)解释程序 D)编译程序(6)在Internet中,用于在计算机之间传输文件的协议是A)TELNET B)BBS C)FTP D)WWW(7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有"+"标记表示A)该文件夹为空 B)该文件夹中含有子文件夹C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件(8)在Windows环境下,下列叙述中正确的是A)在"开始"菜单中可以增加项目,也可以删除项目B)在"开始"菜单中不能增加项目,也不能删除项目C)在"开始"菜单中可以增加项目,但不能删除项目D)在"开始"菜单中不能增加项目,但可以删除项目(9)从Windows环境进入DOS方式后,返回Windows环境的命令为A)QUIT B)WIN C)EXIT D)ESC(10)下列叙述中正确的是A)计算机病毒只感染可执行文件B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过读写磁盘或网络等方式进行传播(11)以下叙述中正确的是A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分(12)以下选项中可作为C语言合法整数的是A)10110B B)0386 C)0Xffa D)x2a2(13)以下不能定义为用户标识符的是A)scanf B)Void C)_3com_ D)int(14)有以下程序main(){ int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf("%d %d %3.1f %3.1f ",a,c,f,x);}程序运行后的输出结果是A)1 65 1 6.5 B)1 65 1.5 6.5C)1 65 1.0 6.5 D)2 65 1.5 6.5(15)以下选项中非法的表达式是A)0<=x<100 B)i=j==0C)(char)(65+3) D)x+1=x+1(16)有以下程序main(){ in t a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<B);printf("%d,%d ",k,m);}程序运行后的输出结果是A)0,0 B)0,1 C)1,0 D)1,1(17)有定义语句:int x, y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A)11 12<回车> B)11, 12<回车>C)11,12<回车> D)11,<回车>12<回车>(18)设有如下程序段:int x=2002, y=2003;printf("%d ",(x,y));则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002 D)输出值为2003(19)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;(20)有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if (c<a) x=1;B.if (a<3) x=3;else if (b<a) x=1; else if (a<2) x=2;else x=3; else x=1;C.if (a<3) x=3;D.if(a<b) x=b;if (a<2) x=2; if (b<c) x=c;if (a<1) x=1; if (c<a) x=a;(21)有以下程序main(){ int s=0,a=1,n;scanf("%d",&n);do{ s+=1; a=a-2; }while(a!=n);printf("%d ",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是A)-1 B)-3 C)-5 D)0(22)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;(23)有以下程序main(){ int k=4,n=0;for( ; n{ n++;if(n%3!=0) continue;k--; }printf("%d,%d ",k,n);}程序运行后的输出结果是A)1,1 B)2,2 C)3,3 D)4,4(24)要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10main(){ int n; float s;s=1.0;for(n=10;n>1;n--)s=s+1/n;printf("%6.4f ",s);}程序运行后输出结果错误,导致错误结果的程序行是A)s=1.0; B)for(n=10;n>1;n--)C)s=s+1/n; D)printf("%6.4f ",s);(25)已定义ch为字符型变量,以下赋值语句中错误的是A)ch=\'\'; B)ch=62+3; C)ch=NULL; D)ch=\'猏';(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参(27)有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A)fun(int y,double m); B)k=fun(10,12.5);C)fun(x,n); D)void fun(n,x);(28)有以下程序void fun(char *a, char *b){ a=b; (*a)++; }main(){ char c1=\'A\',c2=\'a\',*p1,*p2;p1=&c1; p2=&c2; fun(p1,p2);printf("%c%c ",c1,c2);}程序运行后的输出结果是A)Ab B)aa C)Aa D)Bb(29)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是A)int *i=NULL; B) float *f=NULL;scanf("%d",i); *f=10.5;C)char t=\'m\', *c=&t; D) long *L;*c=&t; L=\'\';(30)有以下程序#includemain(){ printf("%d ",NULL); }程序运行后的输出结果是A)0 B)1 C)-1 D)NULL没定义,出错(31)已定义c为字符型变量,则下列语句中正确的是A)c=\'97\'; B)c="97"; C)c=97; D)c="a";(32)以下不能正确定义二维数组的选项是A)int a[2][2]={{1},{2}}; B)int a[][2]={1,2,3,4};C)int a[2][2]={{1},2,3}; D)int a[2][]={{1,2},{3,4}};(33)以下选项中不能正确把cl定义成结构体变量的是A)typedef struct B)struct color cl{ int red; { int red;int green; int green;int blue; int blue;} COLOR; };COLOR cl;C)struct color D)struct{ int red; { int red;int green; int green;int blue; int blue;} cl; } cl;(34)以下能正确定义一维数组的选项是A)int num[]; B) #define N 100int num[N]; C)int num[0..100]; D) int N=100;int num[N];(35)下列选项中正确的语句组是A)char s[8]; s={"Beijing"}; B)char *s; s={"Beijing"}; C)char s[8]; s="Beijing"; D)char *s; s="Beijing";(36)已定义以下函数fun(int *p){ return *p; }该函数的返回值是A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值(37)下列函数定义中,会出现编译错误的是A)max(int x,int y,int *z) B)int max(int x,y){ *z=x>y ? x:y; } { int z;z=x>y ? x:y;return z;}C)max(int x,int y) D)int max(int x,int y){ int z; { return(x>y?x:y); }z=x>y?x:y; return(z);}(38)有以下程序#include#define F(X,Y) (X)*(Y)main(){ int a=3, b=4;printf("%d ", F(a++, b++));}程序运行后的输出结果是A)12 B)15 C)16 D)20(39)有以下程序fun(int a, int b){ if(a>b) return(a);else return(b);}main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf("%d ", r);}程序运行后的输出结果是A)3 B)6 C)8 D)12(40)若有定义:int *p[3];,则以下叙述中正确的是A)定义了一个基类型为int的指针变量p,该变量具有三个指针B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C)定义了一个名为*p的整型数组,该数组含有三个int类型元素D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素(41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址 #include#includechar *scmp(char *s1, char *s2){ if(strcmp(s1,s2)<0)return(s1);else return(s2);}main(){ int i; char string[20], str[3][20];for(i=0;i<3;i++) gets(str[i]);strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2]));printf("%s ",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为A)abcd B)abba C)abc D)abca(42)有以下程序struct s{ int x,y; } data[2]={10,100,20,200};main(){ struct s *p=data;printf("%d ",++(p->x));}程序运行后的输出结果是A)10 B)11 C)20 D)21(43)有以下程序段main(){ int a=5,*b,**c;c=&b; b=&a;……}程序在执行了c=&b;b=&a;语句后,表达式:**c的值是A)变量a的地址 B)变量b中的值 C)变量a中的值 D)变量b的地址(44)有以下程序#includemain(){ char str[][20]={"Hello","Beijing"},*p=str;printf("%d ",strlen(p+20));}程序运行后的输出结果是A)0 B)5 C)7 D)20(45)已定义以下函数fun(char *p2, char *p1){ while((*p2=*p1)!=\'\'){ p1++;p2++; } }函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有\'\'(46)有以下程序main(){ int x=3, y=2, z=1;printf("%d ",x/y&~z);}程序运行后的输出结果是A)3 B)2 C)1 D)0(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A)0 B)1 C)-1 D)一个非0值(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(49)有以下程序main(){ int a[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++) p[i]=i+1;printf("%d ",a[1][2]);}程序运行后的输出结果是A)3 B) 6 C)9 D)2(50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。
计算机二级C语言测试题及答案解析计算机二级C语言测试题及答案解析C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,下面给大家整理了计算机二级C语言测试题及答案,欢迎阅读!计算机二级C语言测试题及答案解析1.(A )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从 C 开始执行。
A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main函数D、包含文件中的第一个函数3、以下说法中正确的是( C )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是( B ) 。
A、 C程序的工作过程是编辑、编译、连接、运行B、 C语言不区分大小写。
C、 C程序的三种基本结构是顺序、选择、循环D、C程序从main函数开始执行5.下列正确的标识符是(C )。
A、-a1B、a[i]C、a2_iD、int t5~8题为相同类型题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B )。
A、3axB、xC、caseD、-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。
A、 %xB、a+bC、a123D、123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。
(考试时间120分钟,满分100分)一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)(1)在计算机中,一个字节所包含二进制位的个数是A.2B.4C.8D.16(2)在多媒体计算机中,CD-ROM属于A.存储媒体B.传输媒体C.表现媒体D.表示媒体(3)在DOS系统中,带有通配符的文件名*.*表示A.硬盘上的全部文件B.当前盘当前目录中的全部文件C.当前盘上的全部文件D.根目录中的全部文件(4)十六进制数100转换为十进制数为A.256B.512C.1024D.64(5)能将高级语言编写的源程序转换为目标程序的软件是A.汇编程序B.编辑程序C.解释程序D.编译程序(6)在Internet中,用于在计算机之间传输文件的协议是A.TELNETB.BBSC.FTPD.WWW(7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有"+"标记表示A.该文件夹为空B.该文件夹中含有子文件夹C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件(8)在Windows环境下,下列叙述中正确的是A.在"开始"菜单中可以增加项目,也可以删除项目B.在"开始"菜单中不能增加项目,也不能删除项目C.在"开始"菜单中可以增加项目,但不能删除项目D.在"开始"菜单中不能增加项目,但可以删除项目(9)从Windows环境进入DOS方式后,返回Windows环境的命令为A.QUITB.WINC.EXITD.ESC(10)下列叙述中正确的是A.计算机病毒只感染可执行文件B.计算机病毒只感染文本文件C.计算机病毒只能通过软件复制的方式进行传播D.计算机病毒可以通过读写磁盘或网络等方式进行传播(11)以下叙述中正确的是A.C程序中注释部分可以出现在程序中任意合适的地方B.花括号"{"和"}"只能作为函数体的定界符C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语句之间的分隔符,不是语句的一部分(12)以下选项中可作为C语言合法整数的是A.10110BB.0386C.0XffaD.x2a2(13)以下不能定义为用户标识符的是A.scanfB.VoidC._3com_D.int(14)有以下程序main(){ int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf("%d %d %3.1f %3.1f\n",a,c,f,x);}程序运行后的输出结果是A.1 65 1 6.5B.1 65 1.5 6.5C.1 65 1.0 6.5D.2 65 1.5 6.5(15)以下选项中非法的表达式是A.0%26lt;=x%26lt;100B.i=j==0C.(char)(65+3)D.x+1=x+1(16)有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b%26gt;a)||(m=a printf("%d,%d\n",k,m);}程序运行后的输出结果是A.0,0B.0,1C.1,0D.1,1(17)有定义语句:int x, y;,若要通过scanf("%d,%d",%26amp;x,%26amp;y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A.11 12%26lt;回车%26gt;B.11, 12%26lt;回车%26gt;C.11,12%26lt;回车%26gt;D.11,%26lt;回车%26gt;12%26lt;回车%26gt;(18)设有如下程序段:int x=2002, y=2003;printf("%d\n",(x,y));则以下叙述中正确的是A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出B.运行时产生出错信息C.输出值为2002D.输出值为2003(19)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是A.x=x*100+0.5/100.0;B.x=(x*100+0.5)/100.0;C.x=(int)(x*100+0.5)/100.0;D.x=(x/100+0.5)*100.0;(20)有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A. if (c else if (b else x=3; else x=1;C. if (a%26lt;3) x=3;D.if (a if (a%26lt;2) x=2; if (b if (a%26lt;1) x=1; if (c (21)有以下程序main(){ int s=0,a=1,n;scanf("%d",%26amp;n);do{ s+=1; a=a-2; }while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘给n输入的值是A.-1B.-3C.-5D.0(22)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b%26lt;=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;(23)有以下程序main(){ int k=4,n=0;for( ; n { n++;if(n%3!=0) continue;k--; }printf("%d,%d\n",k,n);}程序运行后的输出结果是A.1,1B.2,2C.3,3D.4,4(24)要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10(资料来源:东方教育网 )main(){ int n; float s;s=1.0;for(n=10;n%26gt;1;n--)s=s+1/n;printf("%6.4f\n",s);}程序运行后输出结果错误,导致错误结果的程序行是A.s=1.0;B.for(n=10;n%26gt;1;n--)C.s=s+1/n;D.printf("%6.4f\n",s);(25)已定义ch为字符型变量,以下赋值语句中错误的是A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参(27)有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A.fun(int y,double m);B.k=fun(10,12.5);C.fun(x,n);D.void fun(n,x);(28)有以下程序void fun(char *a, char *b){ a=b; (*a)++; }main(){ char c1='A',c2='a',*p1,*p2;p1=%26amp;c1; p2=%26amp;c2; fun(p1,p2);printf("%c%c\n",c1,c2);}程序运行后的输出结果是A.AbB.aaC.AaD.Bb(29)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是A.int *i=NULL;B. float *f=NULL;scanf("%d",i); *f=10.5;C.char t='m', *c=%26amp;t;D.long *L;*c=%26amp;t; L='\0';(30)有以下程序#includemain(){ printf("%d\n",NULL); }程序运行后的输出结果是A.0B.1C.-1D.NULL没定义,出错(31)已定义c为字符型变量,则下列语句中正确的是A.c='97';B.c="97";C.c=97;D.c="a";(32)以下不能正确定义二维数组的选项是A.int a[2][2]={{1},{2}};B.int a[][2]={1,2,3,4};C.int a[2][2]={{1},2,3};D.int a[2][]={{1,2},{3,4}};(33)以下选项中不能正确把cl定义成结构体变量的是A.typedef structB.struct color cl{ int red; { int red;int green; int green;int blue; int blue;} COLOR; };COLOR cl;C.struct colorD.struct{ int red; { int red;int green; int green;int blue; int blue;} cl; } cl;(34)以下能正确定义一维数组的选项是A.int num[];B. #define N 100 int num[N];C.int num[0..100];D.int N=100;int num[N];(35)下列选项中正确的语句组是A.char s[8]; s={"Beijing"};B.char *s; s={"Beijing"};C.char s[8]; s="Beijing";D.char *s; s="Beijing";(36)已定义以下函数fun(int *p){ return *p; }该函数的返回值是A.不确定的值B.形参p中存放的值C.形参p所指存储单元中的值D.形参p的地址值(37)下列函数定义中,会出现编译错误的是A.max(int x,int y,int *z)B.int max(int x,y){ *z=x%26gt;y ? x:y; } { int z;z=x%26gt;y ? x:y;return z;}C.max(int x,int y)D.int max(int x,int y){ int z; { return(x%26gt;y?x:y); }z=x%26gt;y?x:y; return(z);}(38)有以下程序#include#define F(X,Y) (X)*(Y)main(){ int a=3, b=4;printf("%d\n", F(a++, b++));}程序运行后的输出结果是A.12B.15C.16D.20(39)有以下程序fun(int a, int b){ if(a%26gt;b) return(a);else return(b);}main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf("%d\n", r);}程序运行后的输出结果是A.3B.6C.8D.12(40)若有定义:int *p[3];,则以下叙述中正确的是A.定义了一个基类型为int的指针变量p,该变量具有三个指针B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C.定义了一个名为*p的整型数组,该数组含有三个int类型元素D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素(41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址#include#includechar *scmp(char *s1, char *s2){ if(strcmp(s1,s2)%26lt;0)return(s1);else return(s2);}main(){ int i; char string[20], str[3][20];for(i=0;i%26lt;3;i++) gets(str[i]);strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为A.abcdB.abbaC.abcD.abca(42)有以下程序struct s{ int x,y; } data[2]={10,100,20,200};main(){ struct s *p=data;printf("%d\n",++(p-%26gt;x));}程序运行后的输出结果是A.10B.11C.20D.21(43)有以下程序段main(){ int a=5,*b,**c;c=%26amp;b; b=%26amp;a;……}程序在执行了c=%26amp;b;b=%26amp;a;语句后,表达式:**c的值是A.变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址(44)有以下程序#includemain(){ char str[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序运行后的输出结果是A.0B.5C.7D.20(45)已定义以下函数fun(char *p2, char *p1){ while((*p2=*p1)!='\0'){ p1++;p2++; } }函数的功能是A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有'\0'(46)有以下程序main(){ int x=3, y=2, z=1;printf("%d\n",x/y%26amp;~z);}程序运行后的输出结果是A.3B.2C.1D.0(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A.0B.1C.-1D.一个非0值(48)下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件B.文件由二进制数据序列组成,C语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(49)有以下程序main(){ int a[3][3],*p,i;p=%26amp;a[0][0];for(i=0;i%26lt;9;i++) p[i]=i+1;printf("%d \n",a[1][2]);}程序运行后的输出结果是A.3B.6C.9D.2(50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。