国家二级C语言机试(C语言基础知识)模拟试卷17

合集下载

国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析) 题型有:1. 选择题选择题1.下列选项中不属于结构化程序设计原则的是( )。

A.可封装B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

知识模块:选择题2.有两个关系R和T如下:则由关系R得到关系T的操作是( )。

A.投影B.交C.选择D.并正确答案:A解析:从表图中可以看出,关系T是从关系R中选取一部分字段(A和C)及其值构成新的关系,是一种纵向操作产生新列,属于投影,正确选项为A。

知识模块:选择题3.有以下程序:#include <stdio.h>main( ){printf(″%d\n”,NULL);}程序运行后的输出结果是( )。

A.1B.变量无定义,输出不确定C.—1D.0正确答案:D解析:NULL为一个符号常量,对应的ASCⅡ码值为0,答案选D。

知识模块:选择题4.有以下程序:#include<stdio.h>#define f(x)x*x*xmain( ){int a=3,s,t;s=f(a+1);t=f((a+1));printf(″%d,%d\n″,s,t);}程序运行后的输出结果是( )。

A.10,64B.10,10D.64,64正确答案:A解析:C语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。

所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有无括号的运算结果是不同的。

知识模块:选择题5.有以下程序:#include<stdio.h>int f(int x,int y){return((y—x) * x);}void main( ){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(″%d\n″,d);}程序运行后的输出结果是( )。

最新全国计算机等级考试二级C语言-题库(全)

最新全国计算机等级考试二级C语言-题库(全)

2016年3月份全国计算机等级考试二级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 CaseD)2a, DO, sizeof 标识符由数字、字母、下划线组成,开头不能为数字(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e e后为整数(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 \n",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\n",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\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ 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\n",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\n",*(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\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)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]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",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′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(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\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int 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\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(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。

2017年4月全国计算机等级考试二级c语言笔试试题(含参考答案)

2017年4月全国计算机等级考试二级c语言笔试试题(含参考答案)

全国计算机等级考试二级笔试试题基础知识与C语言程序设计(考试时间120分钟,满分100分)2017年4月一、选择题(1-30每小题1分,31-45每小题2分,共60分)下列各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。

答在试卷上不得分。

(1)二进制数101110转换为等值的八进制数是【1】。

【1】 A) 45 B) 56 C) 67 D) 78(2)CPU是由【2】组成的。

【】【2】A) 内存储器和控制器B) 控制器和运算器C) 内存储器和运算器D) 内存储器、控制器和运算器(3)DOS是为IBM PC系列微型计算机及其兼容机所配置的【3】磁盘操作系统。

【3】A) 多用户多任务B) 单用户单任务 C) 分时D) 分布式(4)启动MS-DOS操作系统后,【4】已驻留内存。

【4】A) B) C) D) CCCC.EXE(5)设当前目录为F2,则把A盘根目录下的PROG.BAS文件复制到B盘F3子目录中的命令是【5】。

【5】A) COPY PROG.BAS B: B) COPY A:PROG.BAS B:\C) COPY A:\PROG.BAS B:\F3 D) COPY A:PROG.BAS B:\F3\(6)下面四组DOS命令中,意义完全相同的一组是【6】。

【6】A) COPY和DISKCOPY B) COMP和DISKCOMPC) DEL和RD D) RENAME和REN(7)防止软盘感染病毒的有效方法是【7】。

【7】A) 不要把软盘和有毒软盘放在一起 B) 在写保护缺口上贴上胶条C) 保持机房清洁 D) 定期对软盘格式化(8)双面高密度5英寸软磁盘的容量是【8】。

【8】A) 360KB B) 720KB C) 1.2MB D) 1.44MB(9)在FOXBASE中,可以使用的两类变量是【9】。

【9】A) 内存变量和字段变量B) 全局变量和局部变量C) 字段变量和简单变量D) 内存变量和自动变量(10)建立一个新子目录的DOS命令是【10】。

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案

全国计算机二级《C语言》考试题库与答案全国计算机二级《C语言》考试题库与答案在学习、工作中,我们都离不开试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。

什么样的试题才能有效帮助到我们呢?以下是店铺为大家收集的全国计算机二级《C语言》考试题库与答案,欢迎大家分享。

全国计算机二级《C语言》考试题库与答案篇1(1)下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除(2)下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( ):A.学生成绩管理系统B.c语言编译程序C.UNIX操作系统D.数据库管理系统(5)结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构(6)下面描述中错误的是( )。

A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系(9)已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。

以下不能将变量C中的大写字母转换为对应小写字母的语句是( )。

计算机二级c语言2017试题及答案

计算机二级c语言2017试题及答案

计算机二级c语言2017试题及答案一、选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. variable-2D. _variable2答案:D2. 关于C语言中的数组,以下说法正确的是?A. 数组的大小在声明后可以改变B. 数组的索引从0开始C. 数组可以存储不同类型的数据D. 数组只能存储数字答案:B3. 下列哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:C5. C语言中,以下哪个运算符用于判断两个值是否相等?A. ==B. !=C. =D. &&答案:A6. 在C语言中,以下哪个选项表示“或”逻辑运算?A. &&B. ||C. !D. %答案:B7. C语言中,以下哪个选项用于定义一个全局变量?A. staticB. externC. constD. register答案:B8. 在C语言中,以下哪个函数用于输出字符串?A. printfB. scanfC. getsD. puts答案:D9. 关于C语言中的指针,以下说法正确的是?A. 指针可以存储任何类型的数据B. 指针变量必须初始化C. 指针可以存储变量的地址D. 指针不能存储函数的地址答案:C10. 在C语言中,以下哪个选项用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型变量的关键字是________。

答案:int2. 字符串"Hello, World!"在C语言中的正确表示方式是________。

答案:"Hello, World!"3. 在C语言中,用于定义一个函数的关键字是________。

国家二级C语言(C语言基础知识)机试模拟试卷9(题后含答案及解析)

国家二级C语言(C语言基础知识)机试模拟试卷9(题后含答案及解析)

国家二级C语言(C语言基础知识)机试模拟试卷9(题后含答案及解析)题型有:1. 选择题选择题1.下列叙述中错误的是A.C程序可以由多个程序文件组成B.一个C语言程序只能实现一种算法C.C程序可以由一个或多个函数组成D.一个C函数可以单独作为一个C程序文件存在正确答案:B解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。

在C语言中一个算法是用函数来实现的。

一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。

C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C 语言程序可以实现多种算法。

知识模块:C语言基础知识2.关于算法,以下叙述中错误的是A.同一个算法对于相同的输入必能得出相同的结果B.一个算法对于某个输入的循环次数是可以事先估计出来的C.某个算法可能会没有输入D.任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕正确答案:D解析:算法和程序不同,算法满足以下特性:算法有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。

算法的确定性是指算法中的每一个步骤都必须有明确定义,不允许有模棱两可的解释,也不允许有多义性,因此对于相同的输入必有相同的输出,同时可以事先估计算法的时间复杂度,对于有循环的算法,以循环体内的循环次数来估测时间复杂度。

知识模块:C语言基础知识3.有以下程序,在VC6平台上编译运行,程序运行后的输出结果是#include <stdio.h>main( ){int s,t,A=10;double B=6:s=sizeof(A);t=sizeof(B);printf(“%d,%d\n”,s,t);}A.4,4B.2,4C.4,8D.10,6正确答案:C解析:关键字sizeof用于测试不同类型变量所占的内存空间,返回所占的字节数。

在VC编译系统中,整型燹量占用4个字节的内存空间,而双精度型变量占用8个字节的内存空间。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。

2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。

他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。

在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。

C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。

丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。

2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。

3. 输出结果为“helloworld”。

strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。

在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。

如果第一个字符串不够大,程序会出现内存溢出等问题。

4. A、B、C三个数据类型可以用来存储浮点数。

5. 输出结果为“6”。

在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序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\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

全国计算机二级C语言考试模拟题

全国计算机二级C语言考试模拟题

全国高校计算机等级考试(二级C)模拟一试题一、选择题1、设有语句:int k, *p; 以下能正确执行的赋值语句是(D )。

A、k=pB、k=&pC、P=KD、p=&k2、以下运算符中优先级最高的运算符是(A)。

A、!B、&&C、||D、<3、求字符串长度的函数是( D )。

A、strcatB、strcpyC、strcmpD、strlen4、下面程序段的运行结果是(A)。

char x[5]=“ab\0c\0”;printf("%s",x);说明:“\0”中的“0”是数字零。

A、abB、abcC、ab\0D、ab\0c\05、若有说明语句: int a[2][4]; 则对数组a元素的正确引用是( D )。

A、a[2]B、a[4]C、a[2][4]D、a[1][3]6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。

A、float型B、int型C、long型D、double型7、用数组名作为函数调用的实参时,传递给虚参的是(A)。

A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数8、以下程序的输出结果是( D )。

#include<stdio.h>#define F(y) 8-yvoid main(void){int x,y;y=F(2);printf(“y=%d”,y);}A、2B、y=2C、6D、y=69、以下程序的输出结果是(A)。

#include<stdio.h>struct{int x,y;} a;void main(void){int x,y=50,z;a.x=10;a.y=20;z=a.x+y;printf(“%d”,z);}A、60 B 、10 C、0 D、2010、语句fopen(“file.dat”,”r”); 的功能是(A)。

A、按照“读”方式打开文件B、按照“写”方式打开文件C、按照“读写”方式打开文件D、按照“追加”方式打开文件11、关闭文件的语句是( D )。

计算机二级《C语言》考试题库与答案

计算机二级《C语言》考试题库与答案

计算机二级《C语言》考试题库与答案一、程序填空题(共18分)、下列给定程序中,函数flm的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为“def35adh3kjsdt7”,执行后结果为“defadhajsdt3537”。

请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANKl.c中。

不得增行或删行,也不得更改程序的结构!二、程序修改题(共l8分)下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!三、程序设计题(共24分)编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为l,则输出3。

注意:部分源程序在文件PROCl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。

参考答案一、程序填空题【参考答案】(1)j++或j+=1或++j或j=j+1(2)s[i]=t1[i](3)j【考点分析】本题考查:指针型变量;数组变量赋值;for循环语句。

【解题思路】填空1:根据函致fun中的内容可知,数组t1存储了s中的非数字字符,数组口存储了s中的数字字符,为了存储下一个数字字符,下标j要进行加1操作。

填空2:将S串中的数字与非数字字符分开后,要先将非数字字符放入字符串s中,因此填入s[i]=t1[i]。

填空3:最后将敦字字符加到s串之后,并且i要小于数字的.个数j。

二、程序修改题【参考答案】(1)fh(j=i+1;j<6;j++)(2)*(pstr+i)=}(pstr+j);【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。

国家二级C语言机试(C语言基础知识)模拟试卷4(题后含答案及解析)

国家二级C语言机试(C语言基础知识)模拟试卷4(题后含答案及解析)

国家二级C语言机试(C语言基础知识)模拟试卷4(题后含答案及解析)题型有:1. 选择题选择题1.以下叙述中错误的是A.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B.用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中C.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D.C语言源程序经编译后生成后缀为.obj的目标程序正确答案:C解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。

由高级语言编写的程序称为”源程序”,把由二进制代码表示的程序称为”目标程序”。

C语言编写的源程序就是一ASCⅡ的形式存放在文本文件中的。

c源程序经过c编译程序编译之后生成一个后缀为.obi的二进制文件(称为目标文件),然后由称为”连接程序”(Link)的软件,把此,obi文件与C语言提供的各种库函数连接起来生成一个后缀为.ExE的可执行文件。

知识模块:C语言基础知识2.以下叙述中错误的是A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输入C.算法正确的程序可以有零个输出D.算法正确的程序对于相同的输入一定有相同的结果正确答案:C解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。

一个算法应该具有以下5个特征:①有穷性。

一.爪算法包含的操作步骤应该是有限的。

也就是说,在执行若T个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。

②确定性。

算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。

③可行性。

算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现。

④有零个或多个输入。

在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。

⑤有一个或多个输出。

算法的目的是为了求”解”,这些”解”只有通过输出才能得到。

国家二级C语言机试历年真题试卷汇编17_真题无答案

国家二级C语言机试历年真题试卷汇编17_真题无答案

国家二级(C语言)机试历年真题试卷汇编17(总分86, 做题时间90分钟)1. 选择题1.下列叙述中正确的是( )。

SSS_SINGLE_SELA 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D 循环队列中元素的个数是由队头指针和队尾指针共同决定的2.下列各序列中不是堆的是( )。

SSS_SINGLE_SELA (91,85,53,36,47,30,24,12)B (91,85,53,47,36,30,24,12)C (47,91,53,85,30,12,24,36)D (91,85,53,47,30,12,24,36)3.设循环队列为Q(1:m),其初始状态为front=rear=m。

经过一系列入队与退队运算后,front=15,rear=20。

现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为( )。

SSS_SINGLE_SELA 4B 6C m一5D m一64.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。

SSS_SINGLE_SELA 一369B 369C 0.369D 整数集合{1,2,3,4,5}5.一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈顺序是( )。

SSS_SINGLE_SELA 12345ABCDEB EDCBA54321C ABCDE12345D 54321EDCBA6.如下所示的系统结构图的最大出扇数是( )。

SSS_SINGLE_SELA nB 1C 3D 47.软件设计中模块划分应遵循的准则是( )。

SSS_SINGLE_SELA 低耦合、低内聚B 高耦合、高内聚C 低耦合、高内聚D 内聚与耦合无关8.软件的生命周期是指( )。

SSS_SINGLE_SELA 软件产品从提出、实现、使用维护到停止使用退役的过程B 软件从需求分析、设计、实现到测试完成的过程C 软件的开发过程D 软件的运行维护过程9.在数据库设计中,描述数据间内在语义联系得到E—R图的过程属于( )。

全国计算机二级考试《C语言》真题与答案

全国计算机二级考试《C语言》真题与答案

全国计算机二级考试《C语言》真题与答案全国计算机二级考试《C语言》真题与答案通过真题的练习,我们可以了解计算机等级考试的题型,有针对性的复习。

以下是店铺搜索整理的一份全国计算机二级考试《C语言》真题与答案,供参考练习,预祝考生们考出自己理想的成绩!想了解更多相关信息请持续关注我们店铺!全国计算机二级考试《C语言》真题与答案篇11.下列叙述中正确的是。

A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对正确答案:A2.下列与队列结构有关联的是A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度正确答案:D3.一个栈的初始状态为空。

现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是A.1,2,3,A,B,CB.C,B,A,1,2,3C.C,B,A,3,2,1D.1,2,3,C,B,A正确答案:C4.下面属于白盒测试方法的是______。

A.等价类划分法B.逻辑覆盖C.边界值分析法D.错误推测法正确答案:B5.下面对对象概念描述正确的是()。

A.对象间的通信靠消息传递B.对象是名字和方法的封装体C.任何对象必须有继承性D.对象的多态性是指一个对象有多个操作正确答案:A6.软件设计中模块划分应遵循的准则是()。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合正确答案:B7.下面描述中不属于数据库系统特点的是()。

A.数据共享B.数据完整性C.数据冗余度高D.数据独立性高正确答案:C8.数据库设计过程不包括()。

A.概念设计B.逻辑设计C.物理设计D.算法设计正确答案:D9.以下叙述正确的是()。

A.C语言函数可以嵌套调用,例如:fun(fun(x))B.C语言程序是由过程和函数组成的C.c语言函数不可以单独编译D.c语言中除了main函数,其他函数不可作为单独文件形式存在正确答案:A10.以下选项中合法的标识符是A)1_1B)1-1C)_11D)1_ _正确答案:C11.表达式3.6-5/2+1.2+5%2的值是()A.4.3B.4.8C.3.3D.3.8正确答案:D12.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

国家二级C语言机试(选择题)模拟试卷178(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷178(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷178(题后含答案及解析) 题型有:1.1.算法的空间复杂度是指A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数正确答案:A解析:算法的空间复杂度是指执行这个算法所需要的内存空间。

这个内存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。

知识模块:公共基础知识2.某带链的队列初始状态为front=rear=NULL。

经过一系列正常的入队与退队操作后,front=10,rear=5。

该队列中的元素个数为( )。

A.4B.5C.6D.不确定正确答案:D解析:带链的队列使用了链表来表示队列,而链表中的元素存储在不连续的地址中,因此当front=10,rear=5时,不能确定队列中元素的个数。

知识模块:公共基础知识3.阅读以下程序#include &lt;stdio.h&gt; main( ) { int case ;float printF;printf(“请输入2个数:”);scanf(“%d%f”,&case,&printF);prin七f(“%d %f\n”,case,printF );} 该程序在编译时产生错误,其出错原因是A.定义语句出错,printF不能用作用户自定义标识符B.定义语句出错,case是关键字,不能用作用户自定义标识符C.定义语句无错,scanf不能作为输入函数使用D.定义语句无错,printf不能输出case的值正确答案:B解析:case是C语言中的一个关键字,不能用作用户标识符来使用,所以这段程序代码在编译时就会出错。

知识模块:C语言基础知识4.有以下程序#include<stdio.h>main( ){inta=3;printf(‘‘%d\n’’,(a+=a-=a*a));}程序运行后的输出结果是A.9B.0C.3D.-12正确答案:D解析:对于表达式a+=a-=a*a相当于a=a.(a*a),然后计算a=a+a,a的初值为3,则表达式的值为-12。

国家二级C语言机试(C语言基础知识)模拟试卷17(题后含答案及解析)

国家二级C语言机试(C语言基础知识)模拟试卷17(题后含答案及解析)

国家二级C语言机试(C语言基础知识)模拟试卷17(题后含答案及解析)题型有:1. 选择题选择题1.DOS操作系统中的文件系统是如何组织的?( )A.拓扑结构B.网状结构C.环形结构D.树形结构正确答案:D解析:DOS操作系统中文件系统是树形结构组织的。

知识模块:C语言基础知识2.关于C程序的编译和运行,以下叙述中错误的是( )。

A.C语言源代码程序通过编译、链接步骤之后才能形成一个可执行文件B.用C语言编写的程序是以ASCⅡ代码形式存放在一个文本文件中C.C语言中的所有语句都将被转换成二进制的机器指令D.C语言源程序经编译后生成后缀为.obj的目标程序正确答案:C解析:C语言中的某些语句并不会被转换成二进制机器指令,如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。

C语言编写的源程序就是以ASCⅡ的形式存放在文本文件中的。

C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“链接程序”的软件,因此.obj文件与C语言提供的各种库函数链接起来生成一个后缀为.EXE的可执行文件。

知识模块:C语言基础知识3.计算机程序设计的模块化一般是哪一项实现的?( )A.语句B.程序行C.函数D.变量正确答案:C解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,多个函数便可以实现程序的模块化设计。

知识模块:C语言基础知识4.关于结构化程序设计的叙述中正确的是( )。

A.由三种基本结构构成的程序只能解决小规模的问题B.一个结构化程序必须同时由顺序、分支、循环三种结构组成C.结构化程序使用goto语句会很便捷D.在C语言中,程序的模块化是利用函数实现的正确答案:D解析:C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。

国家二级(C语言)机试模拟试卷117(题后含答案及解析)_0

国家二级(C语言)机试模拟试卷117(题后含答案及解析)_0

国家二级(C语言)机试模拟试卷117(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.给定程序中,函数fun的功能是计算下式例如,若形参e的值为1e-3,函数的返回值2.985678。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANKl.C中。

不得增行或删行,也不得更改程序的结构!正确答案:(1)0 (2)i++ (3)2.0*i解析:函数fun的功能是求级数和,观察可知,级数项有规律变化,可以用循环来累加求和。

程序修改题(30分)2.给定程序MODll.C中函数fun的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!正确答案:(1)sum=0 (2)scanf(“%d,”,&a[i][j]);解析:该题中函数功能是计算元素的和。

从已给定源程序的main主函数开始入手,然后通过“fun( );”语句调用fun函数的功能。

程序设计题(40分)3.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,它的功能是:求出平均分,由函数值返回。

例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

正确答案:解析:该程序功能是求出存储在带头节点的链表结构中成绩的平均分。

解题思路是,首先对单链表中存储的所有成绩求总分,然后对总分计算平均值。

国家二级C语言机试(选择题)模拟试卷176(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷176(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷176(题后含答案及解析) 题型有:1.1.计算机能直接执行的程序是A.目标程序B.可执行程序C.汇编程序D.源程序正确答案:B解析:把由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”(后缀名为.obj),由汇编语言编写的程序称为“汇编程序”。

为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制的机器指令。

这种具有翻译功能的软件称为“编译程序”,每种高级语言都有与它对应的编译程序。

C源程序经过C编译程序编译之后生成一个后缀为.obj的二制进文件(称为目标文件),这个目标程序要和C语言的库函数相链接生成一个后缀为.exe的文件,这个文件可以在操作系统中直接执行,称为可执行程序。

知识模块:C 语言基础知识2.有以下程序:#include&lt;stdio.h&gt; int fun(int n) { if(1n return fun(n一1)+n;else return 0;}main( ){ prinff(“%d\n”,fun(3));}程序的运行结果是( )。

A.4B.5C.6D.7正确答案:C解析:fun函数是一个递归函数,n=3,返回f(3—1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。

3.已知大写字母A的ASCⅡ码值是65,小写字母a的ASCII码值是97。

下列不能将变量c中的大写字母转换为对应小写字母的语句是( )。

A.c=(-A’+c)%26一’a’B.c=c+32C.C=C—’A’+‘a’D.c=(c一’A’)%26+’a’正确答案:A解析:根据题意可知,小写字母比与之对应的大写字母的ASCⅡ码大32。

A选项中字符A加上c表示的大写字符再对字母个数26取余,本身这个表达式没有任何含义,所以选择A选项。

知识模块:C语言概述4.表达式3.6-5/2+1.2+5%2的值是A.4.8B.3.3C.3.8D.4.3正确答案:C解析:表达式的计算过程为:3.6-5/2+1.2+5%2=3.6.2+1.2+1=3.8。

国家二级C语言(C语言程序设计)机试模拟试卷17(题后含答案及解析)

国家二级C语言(C语言程序设计)机试模拟试卷17(题后含答案及解析)

国家二级C语言(C语言程序设计)机试模拟试卷17(题后含答案及解析)题型有:1. 选择题选择题1.有以下程序main( ){int a=3;d0{printf(“%d,”,a-=2);}while(!(--a));printf(“\n”);}程序运行后的输出结果是A.1,B.1,-2,C.3,0,D.1,0正确答案:B解析:循环体执行两次。

首先输出a=1,然后判断表达式!(--a),a为0,循环条件表达式值为1,执行第二次循环体,输出a=-2。

判断循环条件表达式值为0,循环退出。

知识模块:C语言程序设计2.若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf(“*****\n”);下面关于语句执行情况的叙述中正确的是A.循环体执行两次B.循环体执行一次C.循环体一次也不能执行D.构成无限循环正确答案:D解析:本题考查for循环。

本题的for循环初始条件为i=0,k=-1;循环结束条件为k=1永远为真(k不为0),因此循环不能结束。

知识模块:C语言程序设计3.若k是int类型变量,且有以下for语句1for(k=-1;k<0;k++) printf(“****\n”);下面关于语句执行情况的叙述中正确的是A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环正确答案:B解析:本题考查for循环的使用。

在程序中,for循环的初始值k=-1,循环结束条件是k<0,每次循环k增加1,第一次进入循环的时候k为-1,k小于0,执行打印,然后k的值变成0,下次进入循环k不小于0,循环结束,因此循环只能执行一次。

知识模块:C语言程序设计4.有以下程序段int i,n;for(i=0;i<8;i++){n=rand( )%5;switch(n){case1:case3:printf(“%d\n”,n);break;case2:case4:printf(“%d\n”,n);continue;case0:exit(0);}printf(“%d\n”,n);}以下关于程序段执行情况的叙述,正确的是A.当产生的随机数n为4时结束循环操作B.当产生的随机数n为1和2时不做任何操作C.当产生的随机数n为0时结束程序运行D.for循环语句固定执行8次正确答案:C解析:rand( )函数功能为产生一个随机数,rand( )%5,则产生0~4之间的任意随机数,当产生的随机数n为0时,执行“case0:exit(0)”这条语句,结束程序的运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家二级C语言机试(C语言基础知识)模拟试卷17(总分:50.00,做题时间:90分钟)一、选择题(总题数:25,分数:50.00)1.DOS操作系统中的文件系统是如何组织的?( )(分数:2.00)A.拓扑结构B.网状结构C.环形结构D.树形结构√解析:解析:DOS操作系统中文件系统是树形结构组织的。

2.关于C程序的编译和运行,以下叙述中错误的是( )。

(分数:2.00)A.C语言源代码程序通过编译、链接步骤之后才能形成一个可执行文件B.用C语言编写的程序是以ASCⅡ代码形式存放在一个文本文件中C.C语言中的所有语句都将被转换成二进制的机器指令√D.C语言源程序经编译后生成后缀为.obj的目标程序解析:解析:C语言中的某些语句并不会被转换成二进制机器指令,如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。

C语言编写的源程序就是以ASCⅡ的形式存放在文本文件中的。

C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“链接程序”的软件,因此.obj文件与C语言提供的各种库函数链接起来生成一个后缀为.EXE的可执行文件。

3.计算机程序设计的模块化一般是哪一项实现的?( )(分数:2.00)A.语句B.程序行C.函数√D.变量解析:解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,多个函数便可以实现程序的模块化设计。

4.关于结构化程序设计的叙述中正确的是( )。

(分数:2.00)A.由三种基本结构构成的程序只能解决小规模的问题B.一个结构化程序必须同时由顺序、分支、循环三种结构组成C.结构化程序使用goto语句会很便捷D.在C语言中,程序的模块化是利用函数实现的√解析:解析:C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。

但是程序可以包含一种或者几种结构,不是必须包含全部三种结构。

自从提倡结构化设计以来,goto就成了有争议的语句。

首先,由于goto语句可以灵活跳转,有时它的确会破坏结构化设计风格;其次,goto语句经常带来错误或隐患。

它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。

goto语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。

由三种基本结构构成的程序几乎能解决大部分问题。

5.合法的C语言常量是( )。

(分数:2.00)A.-20.√B.-020C.-2el.0D.-20.0e解析:解析:C语言常量指数表达式中字母e或E之前必须有数字,且e或E后面的指数必须为整数。

6.非法的C语言常量是( )。

(分数:2.00)A.6.123e04B.6.234e0.4 √C.6.234e+4D.6.234e0解析:解析:C语言常量指数表达式中字母e或E之前必须有数字,且e或E后面的指数必须为整数。

选项B中字母e后面是浮点数,错误,其他选项都是正确的常量。

7.不合法的用户标识符是( )。

(分数:2.00)A._aB.DaBcC.x_bD.a--b √解析:解析:用户标识符只能由字母、下划线和数字组成,且必须以字母或者下划线开始。

选项A、B和C 都是正确的,选项D中的一字符不能作为用户标识符,是错误的。

8.关于数的表示的叙述中正确的是( )。

(分数:2.00)A.只有用八进制表示的数才不会有误差B.只有整型数在允许范围内能精确无误的表示,实型数会有误差√C.只有实型数在允许范围内能精确无误的表示,整型数会有误差D.只要允许范围内整型数和实型数都能精确的表示解析:解析:在C语言的数据类型中,整型数是有范围的,只在允许的范围内才能精确无误的表示,实型数由于存储长度限制存在一定的误差,但在通常使用时,误差不影响使用。

9.合法的C语言常量是( )。

(分数:2.00)A.432E0.2B.1.7eC.03249D.OXab √解析:解析:本题考查C语言中的常量表达式。

选项A字母E后面必须是整型数,浮点数错误;选项B字母e后面没有整型数;选项C以0开始表示八进制数,八进制数没有9;选项D是一个正确的十六进制常数。

10.合法的C语言数据常量是( )。

(分数:2.00)A.123L √B.0328C.2.5e1.2D.o225解析:解析:本题考查常量定义。

数据常量可有十进制、八进制、十六进制、指数法等,八进制数字为0~7,第一个字符为0,而不是0。

指数法表示时,指数部分须为整型,选项A中数字后加入L是说明此变量为长整型,是正确的常量表示形式。

11.合法的C语言标识符是( )。

(分数:2.00)A._1_ √B.2_8C.voidD.unsigned解析:解析:用户的标识符只能由字母或下划线开始,其他任何字符开始均会出错。

一般强调文见其义的命名方法。

但是C语言中的保留字不能用作用户的标识符。

而选项C和D全部为保留字,选项B中以数字开头,这些都不正确。

12.关于C语言常量的叙述中错误的是( )。

(分数:2.00)A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.经常被使用的变量可以定义成常量√C.常量可分为数值型常量和非数值型常量D.常量分为整型常量、实型常量、字符常量和字符串常量解析:解析:C语言中的常量指在程序运行过程中,其值不能被改变的量。

常量分为整型常量(即整常数)、实型常量、字符型常量和字符串常量。

常量也可以按数据类型分为数据常量和非数据常量。

变量是指在程序运行过程中,其值能被改变的量。

13.合法的C语言数值常量是( )。

(分数:2.00)A.21.0 Xa33 4.5e0 √B.018.5e-3-0xfC..134 4el.5 0abcD.0x8A 10,000 3.e5解析:解析:C语言常量数制中的八进制数其开头必须是数字“0”,其数字包括0~7,而在选项B中,018是错误的。

浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须要有数字,且e或E之后的指数必须为整,而选项C中4e1.5是错误的。

在选项D中,整型数据10,000的表示形式是错误的。

14.关于C语言数制的叙述中正确的是( )。

(分数:2.00)A.英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符B.八进制数的开头要使用英文字母o,否则不能与十进制区分开C.整型变量可以分为int型、short型、long型和unsigned型四种√D.在C程序中的八进制和十六进制,可以是浮点数解析:解析:C语言的整型变量有:①基本型:以int表示。

②短整型:以short int表示,或以short表示。

③长整型:以long int表示,或以long表示。

④无符号型:以unsigned int表示,选项C正确,实型常量仅有十进制表示形式,八进制以数字。

开头,十六进制开头为Ox或者OX,不是二进制。

15.合法的C语言实数是( )。

(分数:2.00)A.1.0e0.2B.E12C..3e0 √D.2.12E解析:解析:C语言用指数形式表示的实数,需要注意的是字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数。

16.不是C语言字符常量的是( )。

(分数:2.00)A.'C'B.''C'' √C.'\xCC'D.'\072'解析:解析:选项A正确,是大写字母C;选项B错误,使用双引号括起来的是字符串,不是字符;选项C 正确,使用了转义字符“\”,xCC表示16进制的CC;选项D正确,使用了转义字符“\”,072表示八进制的72。

17.不合法的C语言字符常量是( )。

(分数:2.00)A.'\028' √B.'\35'C.'\xdf'D.'\101'解析:解析:选项A错误,表达式拟使用八进制数,但八进制数字的范围是0~7,没有8,选项B、C和D 正确。

18.不合法的C语言字符常量是( )。

(分数:2.00)A.'x'B.'\\'C.'\018' √D.'\xcc'解析:解析:在C语言中,每个字符常量代表ASⅡ字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。

转义字符常量也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCⅡ字符。

选项C中,'/018'是用八进制数来代表一个字符常量,但其中的数字只能是0~7,并不包括8。

19.若int x=12,y=8,z;在其后执行语句z=0.9+x/y;则z的值为( )。

(分数:2.00)A.0.1B.1 √C.2D.1.4解析:解析:C语言的整型数会丢掉小数后的任何数,由于x,y,z都是整型数据,所以x除以y的值为整型数值1,1和0.9相加得到1.9,再转换为整型数1赋给整型变量z。

20.39.有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。

(分数:2.00)A.a%(int)(x一y) √B.a=x<>yC.(a*y)%bD.y=x+y=x解析:解析:选项B中<>运算符不存在,选项C中double类型不能进行余(%)操作,要求两个运算数必须是整数,选项D中x+y=x错误。

21.设int a=2,b=3,c=4;,则以下选项中值为0的表达式是( )。

(分数:2.00)A.(!a==1)&(!b=0) √B.a&bC.(a<b)&!c‖1D.a‖(b+b)||(c—a)解析:解析:C语言中的逻辑运算主要要看运算符的优先级。

选项A中,(!a==1)中!运算优先级比==高,因此!a为假,然后再和1比较是否相等,因此整个表达式的结果为假,(!a==1)和(!b==0)是与的关系,前面的表达式为假,整个表达式结果就是假,选项C中a<b为真,!c值为假,(a<b)&!c值为假,(a <b)&!c|||为真;选项B中a&b的值为2;选项D中a的值为真,表达式的结果为真。

22.设int k=0:以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

(分数:2.00)A.k++ √B.k+1C.++kD.k+=1解析:解析:选项B、C、D都是对k的值加1,选项A的语句k++表示先利用k的值进行运算,然后k值才加1。

23.以下程序的输出结果是( )。

#include main(){int a=0,b=0,c=0 c=(a+=++b,b+=4); printf(''%d,%d,%d\n'',a,b,c);}(分数:2.00)A.1,4,1B.一1,5,4C.1,5,5 √D.一1,4,一1解析:解析:对于语句(a+=++b,b+=4),首先计算“a=a+(++b)”,a,b初值为0,则计算以后a为1,b 为1,然后计算b+=4,得到b的值为5,此时表达式b+=4的值为整个逗号表达式的值,因此c的值为5。

相关文档
最新文档