二级C选择题
- 格式:docx
- 大小:486.12 KB
- 文档页数:167
全国计算机二级c考试题库及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=5, b=6;,则表达式a+=b的值是多少?A. 11B. 6C. 5D. 1答案:A3. 在C语言中,字符串"\"abc\""的长度是多少?A. 3B. 4C. 5D. 6答案:C4. 下列哪个函数不能用来输入数据?A. scanf()B. printf()C. getchar()D. gets()答案:B5. 若有定义:int a=5;,则执行语句a*=a+1;后,变量a的值是多少?A. 5B. 6C. 25D. 10答案:C6. 在C语言中,以下哪个选项是正确的二维数组定义?A. int a[5][6];B. int a[5,6];C. int a(5)(6);D. int a[5 6];答案:A7. 若有定义:int a=1, b=2;,则执行语句a=b=a+b;后,变量a的值是多少?A. 3B. 4C. 1D. 2答案:A8. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int x, int y) { return x+y; }B. int add(int x; int y) { return x+y; }C. int add(int x, int y) { int z; return z; }D. int add(int x, int y) { return x-y; }答案:A9. 在C语言中,以下哪个选项是正确的结构体定义?A. struct Student { int age; float score; };B. struct { int age; float score; } Student;C. struct Student { int age, float score; };D. struct { int age; float score; };答案:A10. 若有定义:int a=10, b=20;,则执行语句a=a+b;后,变量b的值是多少?A. 10B. 20C. 30D. 40答案:B二、填空题(每题2分,共20分)1. 在C语言中,字符型数据在内存中是以______形式存储的。
第二章C程序设计的初步知识一、选择题1。
以下选项中正确的整型常量是().A.12。
B.-20 C。
1,000 D。
4 5 62。
以下选项中正确的实型常量是( )。
A。
0 B。
3。
1415 C.0.329×102 D. .8713。
以下选项中不正确的实型常量是()。
A.2。
607E-1B.0.8103e 2C.—77。
77 D。
456e—24。
以下选项中不合法的用户标识符是()。
A。
abc.c B。
file C。
Main D。
PRINTF5. 以下选项中不合法的用户标识符是()。
A._123B.printfC.A $D.Dim6。
C语言中运算对象必须是整型的运算符是()。
A。
% B。
/ C.! D.**7.可在C程序中用作用户标识符的一组标识符是()。
A。
void define WORD B.as_b3 _123 IfC。
For -abc case D.2c DO SIG8。
若变量已正确定义并赋值,符合C语言语法的表达式是()。
A。
a=a+7; B.a=7+b+c,a++ C.int(12.3%4) D.a=a+7=c+b9。
以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D。
已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为310.以下叙述中正确的是()。
A。
在C程序中无论是整数还是实数,只要在允许的范围内部都能准确无误的表示B。
C程序由主函数组成C.C程序由若干函数组成D.C程序中只允许包含一个函数11。
VC6。
0中int类型变量所占字节数是()。
A。
1 B。
2 C。
3 D。
412.合法的八进制数是()。
A。
0 B.028 C.—077 D。
计算机二级考试c语言考试真题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A2. 若有定义:int a=5, b=10; 则以下哪个表达式的值不为5?A. a+bB. a-bC. a*bD. a/b答案:C3. 在C语言中,以下哪个选项不是标准输入输出库函数?A. printf()B. scanf()C. puts()D. strcat()答案:D4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2答案:B5. 若有定义:char c='A'; 则以下哪个表达式的值不为65?A. cB. 'A'C. "A"D. '\101'答案:C6. 在C语言中,以下哪个选项表示逻辑“与”操作?A. &&B. ||C. !D. =答案:A7. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "ABCDE";B. char str[5] = {'A', 'B', 'C', 'D', 'E'};C. char str[5] = {'A', 'B', 'C', 'D'};D. char str[5] = "ABC" "DE";答案:D8. 若有定义:int x=10; 则以下哪个表达式的值不为10?A. x++B. x--C. ++xD. --x答案:D9. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][] = {1, 2, 3};C. int array[3][];D. int array[2, 3];答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. fgetc()D. All of the above答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码。
计算机二级考试c语言试题及答案计算机二级考试C语言试题及答案一、选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x123B. 123.0C. 123e2D. 123.0L答案:A2. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", 'Hello, World!'D. "Hello, World!'"答案:A4. 在C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a; int b) { return a + b; }C. int add(int a, int b) { return a - b; }D. int add(a, b) { return a + b; }答案:A5. 在C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. int array = 10;答案:A二、填空题1. 在C语言中,用于输入的函数是___________。
答案:scanf2. 在C语言中,用于输出的函数是___________。
答案:printf3. 在C语言中,用于计算两个整数的差的运算符是___________。
答案:-4. 在C语言中,用于定义一个整型变量的关键字是___________。
答案:int5. 在C语言中,用于定义一个字符型变量的关键字是___________。
⼀、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有⼀个以上根结点的数据结构不⼀定是⾮线性结构B)只有⼀个根结点的数据结构不⼀定是线性结构C)循环链表是⾮线性结构D)双向链表是⾮线性结构(3)某⼆叉树共有7个结点,其中叶⼦结点只有1个,则该⼆叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产⽣的主要⽂档是A)软件集成测试计划B)软件详细设计说明书C)⽤户⼿册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分⽀)结构D)重复(循环)结构(6)下⾯描述中错误的是A)系统总体结构图⽀持软件系统的详细设计B)软件设计是将软件需求转换为软件表⽰的过程C)数据结构与数据库设计是软件设计的任务之⼀D)PAD图是软件详细设计的表⽰⼯具(7)负责数据库中查询操作的数据库语⾔是A)数据定义语⾔ B)数据管理语⾔C)数据操纵语⾔ D)数据控制语⾔(8)⼀个教师可讲授多门课程,⼀门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系 C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)⾃然连接B)交C)除D)并(10)定义⽆符号整数类为UInt,下⾯可以作为类UInt实例化值的是A)-369B)369C)0.369D)整数集合{1,2,3,4,5}(11)计算机⾼级语⾔程序的运⾏⽅法有编译执⾏和解释执⾏两种,以下叙述中正确的是A)C语⾔程序仅可以编译执⾏B)C语⾔程序仅可以解释执⾏C)C语⾔程序既可以编译执⾏⼜可以解释执⾏D)以上说法都不对(12)以下叙述中错误的是A)C语⾔的可执⾏程序是由⼀系列机器指令构成的D)在没有安装C语⾔集成开发环境的机器上不能运⾏C源程序⽣成的.exe⽂件(13)以下选项中不能⽤作C程序合法常量的是A)1,234B)'\123' C)123D)"\x7G"(14)以下选项中可⽤作C程序合法实数的是A).1e0B)3.0e0.2 C)E9D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%snum=%d",name;&num);当执⾏上述程序段,并从键盘输⼊:name=Lili num=1001后,name的值为A)Lili B)name=LiliC)Lilinum= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运⾏后的输出结果是A)12B)11C)10D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4);break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运⾏时,若输⼊1 2 34 5 0,则输出结果是A)6566456B)66656C)66666for(i=0;i<8;i++){n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n);continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执⾏情况的叙述,正确的是A)for循环语句固定执⾏8次B)当产⽣的随机数n为4时结束循环操作C)当产⽣的随机数n为1和2时不做任何操作D)当产⽣的随机数n为0时结束程序运⾏(21)有以下程序#includemain(){ chars[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%d\n",n);}程序运⾏后的输出结果是A)0B)3C)7D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++)printf("*****\n");下⾯关于语句执⾏情况的叙述中正确的是A)循环体执⾏两次 B)循环体执⾏⼀次C)循环体⼀次也不执⾏ D)构成⽆限循环(23)有以下程序#includemain(){ char b,c;int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+B);else putchar(i+C);}printf("\n");}程序运⾏后的输出结果是A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读⼊数据的正确语句是A)scanf("%f",&x[6]);B)scanf("%lf",*(x+6));C)scanf("%lf",p+6);voidfun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a);printf("\n");}程序运⾏后的输出结果是A)BYB)BTC)YTD) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将⽆限循环B) getchar()不可以出现在while语句的条件表达式中C)当执⾏此while语句时,只有按回车键程序才能继续执⾏D)当执⾏此while语句时,按任意键程序就能继续执⾏(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运⾏后的输出结果是A)3B)2C)1D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s;B)p=k;C)p=s[0];D)k=s;(29)有以下程序#includevoidfun(char *C){ while(*C){if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main()}当执⾏程序时从键盘上输⼊HelloBeijing,则程序的输出结果是A)hello beijingB)Hello BeijingC)HELLO BEIJINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输⼊数据,为数组中的所有元素赋值。
计算机二级c语言题库
计算机二级C语言题库包括以下题目:
1. 选择题
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为:
A. PAD图
B. N-S图
C. 结构图
D. 数据流图
(2)结构化程序设计主要强调的是:
A. 程序的。
2. 填空题
【】si【】9【】t=n
改错题:【】t=x;x=y;【】return t;
【】t=i【】i【】0
改错题:【】while(fabs(t)=num)【】t=s。
以上只是部分题目的示例,完整的计算机二级C语言题库会包含更多题目,包括选择题、填空题、改错题等各类题型。
您可以通过考试培训网站或教育类网站获取计算机二级C语言题库的全部题目及答案,也可以通过做题应用来练习和提高自己的解题能力。
C语言部分(2010秋)一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)21.以下关于C源程序的叙述中,正确的是(21) 。
A.注释只能出现在程序的开始位置或语句后面B.一行中不能写多条语句C.一条语句可以分写在多行中D.一个源程序只能保存在一个文件中22.C源程序中的命令#include与#define是在(22) 阶段被处理的。
A.预处理B.编译C.连接D.执行23.以下语句中有语法错误的是(23) 。
A.printf("%d",0xAB); B.printf("%f",3.45E2.5);C.printf("%d",037); D.printf("%c", '\\');24.已有声明“int x=5,y;float z=2;”,以下表达式中语法正确的是(24) 。
A.y=x%z B.x>0?y=x:y=-xC.y=x/2=z D.y=x=z /225.已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。
若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是(25) 。
A.c=tolower(c) B.c=c+32C.c=c-'A'+ 'a' D.c=(c+'A')%26-'a'26.一元二次方程ax2+bx+c=0有两个相异实根的条件是a≠0且b2-4ac>0,以下选项中能正确表示该条件的C语言表达式是(26) 。
A.a!=0,b*b-4*a*c>0 B.a!=0 || b*b-4*a*c>0C.a&&b*b-4*a*c>0 D.!a&&b*b-4*a*c>027.以下关于break和continue语句的叙述中正确的是(27) 。
程序流程图中带有箭头的线段表示的是( )。
A) 图元关系B) 数据流C) 控制流D) 调用关系参考答案:C【解析】在数据流图中,用标有名字的箭头表示数据流。
在程序流程图中,用标有名字的箭头表示控制流。
所以选择C)。
结构化程序设计的基本原则不包括( )。
A) 多态性B) 自顶向下C) 模块化D) 逐步求精参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。
软件设计中模块划分应遵循的准则是( )。
A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合参考答案:B【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。
模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。
模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
在软件开发中,需求分析阶段产生的主要文档是( )。
A) 可行性分析报告B) 软件需求规格说明书C) 概要设计说明书D) 集成测试计划参考答案:B【解析】A)错误,可行性分析阶段产生可行性分析报告。
C)错误,概要设计说明书是总体设计阶段产生的文档。
D)错误,集成测试计划是在概要设计阶段编写的文档。
B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
算法的有穷性是指( )。
A) 算法程序的运行时间是有限的B) 算法程序所处理的数据量是有限的C) 算法程序的长度是有限的D) 算法只能被有限的用户使用参考答案:A【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
有穷性是指算法程序的运行时间是有限的。
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。
A) 快速排序B) 冒泡排序C) 直接插入排序D) 堆排序参考答案:D【解析】除了堆排序算法的比较次数是,其他的都是n(n-1)/2。
全国计算机等级考试二级C语言选择题全国计算机等级考试二级C语言选择题大全C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。
下面给大家整理了全国计算机等级考试二级C语言选择题大全,欢迎阅读!全国计算机等级考试二级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,e1C)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 x1TBCDa0k1由关系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 CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)double a=00;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d ",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d ",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(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)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b)a=b; c=a;if(c!=a)c=b;printf("%d,%d,%d ",a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#includemain(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d ",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d ",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s ",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′′;j+=2)s=10*s+p[i][j]-′0′;printf("%d ",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的`语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′′};C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#includemain(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d ",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include#includevoid fun(char *s[],int n){ char *t; int i,j;for(i=0;ifor(j=i+1;jif(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s ",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#includeint f(int x){ int y;if(x==0||x==1) return(3);y=x*x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d ",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d ",*(p+3));A)67 B)0 C)字符′C′的地址 D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
第一章C语言概述1.1 C语言基础知识以下关于结构化程序设计的叙述中正确的是( )A 结构化程序使用goto语句会很便捷B 在C语言中,程序的模块化是利用函数实现的C 一个结构化程序必须同时由顺序、分支、循环三种结构组成D 由三种基本结构构成的程序只能解决小规模的问题参考答案:B【解析】滥用goto语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。一个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。计算机能直接执行的程序是( )A 源程序B 目标程序C 汇编程序D 可执行程序参考答案:D【解析】计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。以下选项中关于程序模块化的叙述错误的是( )A 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序B 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C 把程序分成若干相对独立的模块,可便于编码和调试D 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序参考答案:A【解析】程序模块化思想中,可以采用自顶向下、逐步细化的方法。所以选项A中“自底向上”的说法是错误的。关于算法,以下叙述中错误的是( )A 某个算法可能会没有输入B 某个算法可能会没有输出C 一个算法对于某个输入的循环次数是可以事先估计出来的D 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕参考答案:D以下叙述中错误的是( )A 算法正确的程序可以有零个输入B 算法正确的程序最终一定会结束C 算法正确的程序可以有零个输出D 算法正确的程序对于相同的输入一定有相同的结果参考答案:C【解析】算法的特征:①有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成;②确定性。算法中的每一步都有确切的含义;③可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现;④输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件;⑤输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以选择D选项。C语言程序的模块化通过以下哪个选项来实现( )A 变量B 函数C 程序行D 语句参考答案:B【解析】C语言程序的模块化通过函数来体现,所以选择B。以下不能用于描述算法的是( )A 文字叙述B 程序语句C 伪代码和流程图D E-R图参考答案:D【解析】算法的描述有伪代码、流程图、N-S结构图等。E-R是实体联系模型。所以选择D。以下叙述中正确的是( )A 程序必须包含所有三种基本结构才能成为一种算法B 我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令C 如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达D 只有简单算法才能在有限的操作步骤之后结束参考答案:B【解析】C语言程序可以不包含三种基本结构,也可以包含其中的一种或多种,所以A错误。三种基本结构可以表示任何复杂的算法,所以C错误。正确的算法,不管是简单算法还是复杂算法都可以在有限的操作步骤之后结束,这是算法的有穷性,所以D错误。以下叙述中正确的是( )A 在算法设计时,可以把复杂任务分解成一些简单的子任务B 在C语言程序设计中,所有函数必须保存在一个源文件中C 只要包含了三种基本结构的算法就是结构化程序D 结构化程序必须包含所有的三种基本结构,缺一不可参考答案:A【解析】C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#include命令来引用,所以B错误。结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。C语言主要是借助以下哪种手段来实现程序模块化( )A 定义函数B 定义常量和外部变量C 使用丰富的数据类型D 使用三种基本结构语参考答案:A【解析】C语言程序的模块化通过函数来体现,所以选择A。以下叙述中错误的是( )A C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B C程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件C 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D C语言源程序经编译后生成后缀为.obj的目标程序参考答案:A【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。
由C语言构成的指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
下列叙述中错误的是( )A C程序可以由多个程序文件组成B 一个C语言程序只能实现一种算法C C程序可以由一个或多个函数组成D 一个C函数可以单独作为一个C程序文件存在参考答案:B【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B 错误。
以下四个程序中,完全正确的是( )A #include <stdio.h>B #include <stdio.h>main() main(){/*/programming/*/ {/*programming*/printf("programming!\n");} printf("programming!\n");}C #include <stdio.h>D include <stdio.h>main() main(){/*/*programming*/*/ {/* rogramming*/printf("programming!\n");} printf("programming!\n");}参考答案:B【解析】C语言中注释语句的注释方法是:/*注释内容*/或//注释一行。
所以A与C错误,D 选项中预编译命令include<stdio.h>前丢掉了“#”号。
所以选择B。
有以下程序#include <stdio.h>main(){int a=0, b=0;/* 给a赋值a=10;b=20;给b赋值*/printf("a+b=%d\n",a+B; /* 输出计算结果*/}程序运行后的输出结果是( )A 出错B a+b=30C a+b=10D a+b=0参考答案:D【解析】注释语句可以在一行也可以在多行,用/*……*/或//表示,。
它不参与程序的运行,所以a与b的值仍然为0,所以打印的结果为a+b=0。对于一个正常运行的C程序,以下叙述中正确的是( )A 程序的执行总是从main函数开始,在程序的最后一个函数中结束B 程序的执行总是从程序的第一个函数开始,在main函数结束C 程序的执行总是从main函数开始D 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束参考答案:C【解析】任何一个C程序都是从主函数main开始,至主函数main结束,所以选择C选项。以下叙述中正确的是( )A C语言规定必须用main作为主函数名,程序将从此开始执行B 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C C语言程序将从源程序中第一个函数开始执行D main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等参考答案:A【解析】C语言中的主函数唯一为main()函数不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。以下叙述中正确的是( )A C语句必须在一行内写完B C程序中的每一行只能写一条语句C C语言程序中的注释必须与语句写在同一行D 简单C语句必须以分号结束参考答案:D【解析】C语句可以跨行来写,但是必须以分号结束,所以A选项错误。C程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。以下叙述中正确的是( )A 用C语言编写的程序只能放在一个程序文件中B C程序书写格式严格,要求一行内只能写一个语句C C程序中的注释只能出现在程序的开始位置和语句的后面D C程序书写格式自由,一个语句可以写在多行上参考答案:D【解析】C语言编写的程序可以放置于多个程序文件中,所以A错误。C程序中的一行可以有多条语句,所以B错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。以下关于C语言的叙述中正确的是( )A C语言的数值常量中夹带空格不影响常量值的正确表示B C语言中的变量可以在使用之前的任何位置进行定义C 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D C语言中的注释不可以夹在变量名或关键字的中间参考答案:D【解析】C语言的数值常量中不能夹带空格,所以A错误。C语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B错误。在C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C错误。C语言源程序名的后缀是( )A .CB .exeC .objD .cp参考答案:A【解析】C语言源程序名的后缀是.C,目标文件的扩展文件是.obj,可执行文件的扩展名是.exe。下列叙述中正确的是( )A C程序中所有函数之间都可以相互调用B 在C程序中main函数的位置是固定的C 在C程序的函数中不能定义另一个函数D 每个C程序文件中都必须要有一个main函数参考答案:C【解析】C程序中主函数不能被其他函数调用,所以A选项错误。main函数可以放在程序开始,也可以放在中间,也可以放在最后,位置不固定,但程序执行时必须从main函数开始,所以B选项错误。在C程序的函数中不能定义另一个函数,可以声明或调用另一个函数,所以C选项正确。每个C程序中必须包含一个main函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件,所以D选项错误。以下叙述正确的是( )A C语言函数可以嵌套调用,例如:fun(fun(x))B C语言程序是由过程和函数组成的C C语言函数不可以单独编译D C语言中除了main函数,其他函数不可作为单独文件形式存在参考答案:A【解析】C语言程序是由函数组成的,所以B错误。C语言函数可以单独进行编译,所以C 错误。每个C程序中必须包含一个main函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件,所以D错误。以下叙述中正确的是( )A N-S流程图只能描述简单的顺序结构的程序B 程序的算法只能使用流程图来描述C 结构化程序的三种基本结构是循环结构、选择结构、顺序结构D 计算机可以直接处理C语言程序,不必进行任何转换参考答案:C【解析】N-S流程图是可以描述循环结构、选择结构、顺序结构等多种结构的程序,所以A 选项错误。程序的算法可以用流程图、伪代码、N-S结构图等方法表示,所以B选项错误。计算机只能处理二进制表示的目标程序,不能直接执行由C语言编写的源程序,所以D选项错误。以下叙述中正确的是( )A 书写源程序时,必须注意缩进格式,否则程序会有编译错误B 程序的主函数名除main外,也可以使用Main或_mainC 程序可以包含多个主函数,但总是从第一个主函数处开始执行D 在C程序中,模块化主要是通过函数来实现的参考答案:D解析】C语言的源程序中对缩进没有要求,所以A选项错误。C语言中区分大小写,main 函数不能写成Main或_main,所以B选项错误。一个C程序有且只有一个主函数,所以C 选项错误。以下叙述中正确的是( )A 用户自己定义的函数只能调用库函数B 实用的C语言源程序总是由一个或多个函数组成C 不同函数的形式参数不能使用相同名称的标识符D 在C语言的函数内部,可以定义局部嵌套函数参考答案:B【解析】A选项中,"用户自己定义的函数只能调用库函数"描述是不正确的,也可以调用自定义函数;C选项中,对于不同函数的形式参数可以使用相同名称的标识符;D选项中,关于函数的定义不可以嵌套,但函数的调用可以嵌套。