全国计算机等级考试二级C语言笔试模拟题.docx
- 文档编号:29881476
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:34
- 大小:42.21KB
全国计算机等级考试二级C语言笔试模拟题.docx
《全国计算机等级考试二级C语言笔试模拟题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试模拟题.docx(34页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C语言笔试模拟题
全国计算机等级考试二级 C 语言模拟试题
笔试部分
一、填空题
(1)算法的空间复杂度是指
A)算法程序的长度
B)算法程序中的指令条数
C)算法程序所占的存储空间
D)执行过程中所需要的存储空间
【参考答案】D
(2)用链表表示线性表的优点是
A)便于随机存取
B)花费的存储空间较顺序存储少
C)便于插入和删除操作
D)数据元素的物理顺序与逻辑顺序相同
【参考答案】C
(3)数据结构中,与所使用的计算机无关的是数据的
A)存储结构 B)物理结构 C)逻辑结构 D)物理和存储结构
【参考答案】C
(4)结构化程序设计主要强调的是
A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性
【参考答案】D
(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
A)模块间的关系 B)系统结构部件转换成软件的过程描述
C)软件层次结构 D)软件开发过程
【参考答案】B
(6)检查软件产品是否符合需求定义的过程称为
A)确认测试 B)集成测试 C)验证测试 D)验收测试
【参考答案】A
(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是
A)控制流 B)加工 C)数据存储 D)源和潭
【参考答案】A
(8)应用数据库的主要目的是
A)解决数据保密问题 B)解决数据完整性问题
C)解决数据共享问题 D)解决数据量大的问题
【参考答案】C
(9)在数据库设计中,将 E-R 图转换成关系数据模型的过程属于
A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段
【参考答案】B
(10)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库
系统阶段。
其中数据独立性最高的阶段是
A)数据库系统 B)文件系统 C)人工管理 D)数据项管理
【参考答案】A
(11)以下叙述中正确的是
A)构成 C 程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)C 函数定义的格式是 K&R 格式
【参考答案】A
(12)结构化程序所规定的三种最基本控制结构是
A)输入、处理、输出 B)树形、网形、环形
C)顺序、选择、循环 D)主程序、子程序、函数
【参考答案】C
(13)一个 C 语言程序是由
A)一个主程序和若干子程序组成 B)函数组成
C)若干过程组成D)若干子程序组成
【参考答案】B
(14)请选出可用作 C 语言用户标识符的是
A)void,define,WORD B)a3_b3,_123,IF C)FOR,--abc,Case D)2a,Do,Sizeof
【参考答案】B
(15)下列各数据类型不属于构造类型的是
A)枚举型 B)共用型 C)结构型 D)数组型
【参考答案】A
(16)在16位 C 编译系统上,若定义 long a;,则能给 a 赋40000的正确语句是
A)a=20000+20000; B)a=4000*10;
C)a=30000+10000; D)a=4000L*10L
【参考答案】D
(17)以下不正确的叙述是
A)在 C 程序中,逗号运算符的优先级最低
B)在 C 程序中,APH 和 aph 是两个不同的变量
C)若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的
值不变
D)从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实
型数值
【参考答案】D
(18)sizeof(float)是
A)一个双精度表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达
式
【参考答案】B
(19)若 x,i,j 和 k 都是 int 型变量,则计算表达式 x=(i=4,j=16,k=32)后,x 的值为
A)4 B)16 C)32 D)52
【参考答案】C
(20)下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请
选择填空。
#include
main()
{ int i=0,j,k;
do{i++;k=316-13*i;}while(______);
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
A)k/11 B)k%11 C)k/11==0 D)k%11==0
【参考答案】B
(21)设有定义:
int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A)p=1; B)*q=2; C)q=p; D)*p=5;
【参考答案】D
(22)下面程序的运行结果是
#include
main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A)-1 B)1 C)8 D)0
【参考答案】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
【参考答案】A
(24)有如下程序
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[3],b;b=p[5];
则 b 的值是
A)5 B)6 C)9 D)8
【参考答案】C
(25)设有 int x=11;则表达式(x++*1/3)的值是
A)3 B)4 C)11 D)12
【参考答案】A
(26)请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
A)5 B)14 C)8 D)输出项不合法,无正常输出
【参考答案】A
(27)下列程序的输出结果是
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d\n", d*y);
}
A)3 B)3.2 C)0 D)3.07
【参考答案】C
(28)下列程序的输出结果是
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d\n",res);
}
A)4 B)6 C)8 D)10
【参考答案】B
(29)下面能正确进行字符串赋值操作的是
A)char s[5]={"ABCDE"};
B)char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};
C)char *s;s="ABCDE";
D)char *s;char a; scanf("%s",&s);
【参考答案】C
(30)执行以下程序后,a,b 的值分别为
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
A)-1,5 B)1,6 C)0,7 D)4,10
【参考答案】C
(31)设有数组定义:
char array[]="China"; 则数组 array 所占的空间为
A)4个字节 B)5个字节 C)6个字节 D)7个字节
【参考答案】C
(32)若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对 a 数组元素不正确的引用是
A)a[p-a] B)*(&a[i])
C)p[i]D)a[10]
【参考答案】D
(33)以下不正确的定义语句是
A)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′};
【参考答案】B
(34)若有以下程序
#include
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序输出结果是
A)6 B)8 C)4 D)2
【参考答案】D
(35)下面程序段的运行结果是
char *format="%s,a=%d,b=%d\n";
int a=11,b=10;
a+=b;
printf(format,"a+=b",a,b);
A)for,"a+=b",abB)format,"a+=b"
C)a+=b,a=21,b=10D)以上结果都不对
【参考答案】C
(36)C 语言允许函数类型缺省定义,此时函数值隐含的类型是
A)float B)int C)long D)double
【参考答案】B
(37)以下程序有语法错误,有关错误原因的正确说法是
main()
{ int G=5,k;
void prt_char();
...
k=prt_char(G);
...
}
A)语句 void prt_char();有错,它是函数调用语句,不能用 void 说明
B)变量名不能使用大写字母
C)函数说明和函数调用语句之间有矛盾
D)函数名不能使用下划线
【参考答案】C
(38)以下叙述中不正确的是
A)在不同的函数中可以使用相同的名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
【参考答案】D
(39)有以下程序:
#include
union pw
{ int i;
char ch[2];}a;
main()
{a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}
程序的输出结果是
A)13 B)14 C)208 D)209
【参考答案】A
(40)在16位 IBM-PC 机上使用 C 语言,若有如下定义
struct data
{ int i;
char ch;
double f;
} b;
则结构变量 b 占用内存的字节数是
A)1 B)2 C)7 D)11
【参考答案】D
(41)下面程序的运行结果是
#include
main()
{ int a=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9
【参考答案】B
(42)以下程序的输出结果是
void reverse(int a[],int n)
{ int i,t;
for(i=0;i { t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;} } main() { int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i<10;i++)s+=b[i]; printf(" %d\n ",s); } A)22 B)10 C)34 D)30 【参考答案】A (43)有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return (2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是 A)2 B)4 C)6 D)8 【参考答案】B (44)假定以下程序经编译和连接后生成可执行文件 PROG.EXE,如果在此可执行文 件所在目录的 DOS 提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); } A)ABCDEFG B)IJHL C)ABCDEFGHIJKL D)IJKLABCDEFGH 【参考答案】D (45)以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... } A)p 和 q 的类型不一致,不能执行*p=*q;语句 B)*p 中存放的是地址值,因此不能执行*p=40;语句 C)q 没有指向具体的存储单元,所以*q 没有实际意义 D)q 虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意 义,可能会影响后面语句的执行结果 【参考答案】D (46)函数 rewind 的作用是 A)使文件位置指针重新返回文件的开始位置 B)将文件位置指针指向文件中所要求的特定位置 C)使文件位置指针指向文件的末尾 D)使文件位置指针自动移至下一个字符位置 【参考答案】A (47)设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是 A)struct 结构体类型的关键字 B)example 是结构体类型名 C)x,y,z 都是结构体成员名 D)struct ex 是结构体类型名 【参考答案】B (48)设有以下语句: char x=3,y=6,z; z=x^y<<2; 则 z 的二进制值是 A) B) C) D) 【参考答案】B (49)阅读以下程序及对程序功能的描述,其中正确的描述是 #include main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf("Enter the infile name: \n"); scanf("%s",infile); printf("Enter the outfile name: \n"); scanf("%s",outfile); if((in=fopen(infile,"r"))==NULL) { printf("cannot open infile\n"); exit(0); } if((out=fopen(outfile,"w"))==NULL) { printf("cannot open outfile\n"); exit(0); } while(! feof(in))fputc(fgetc(in),out); fclose(in); fclose(out); } A)程序完成将磁盘文件的信息在屏幕上显示的功能 B)程序完成将两个磁盘文件合二为一的功能 C)程序完成将一个磁盘文件复制到另一个磁盘文件中 D)程序完成将两个磁盘文件合并并在屏幕上输出 【参考答案】C (50)C 语言中,能识别处理的文件为 A)文本文件和数据块文件 B)文本文件和二进制文件 C)流文件和文本文件D)数据文件和二进制文件 【参考答案】B 二、填空题 (1)数据的逻辑结构有线性结构和 【1】 两大类。 【参考答案】 【1】非线性结构 (2)顺序存储方法是把逻辑上相邻的结点存储在物理位置 【2】 的存储单元中。 【参考答案】 【2】相邻 (3)一个类可以从直接或间接的祖先中继承所有属性和方法。 采用这个方法提高了软件的 【3】 。 【参考答案】 【3】可重用性 (4)软件工程研究的内容主要包括: 【4】 技术和软件工程管理。 【参考答案】 【4】软件开发 (5)关系操作的特点是 【5】 操作。 【参考答案】 【5】集合 (6)下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上 述字符串,请填空。 #include main () { int i; char s[21],*p; for (i=0;i<20;i++) s[i]=getchar (); s[i]=【6】; p =【7】 while (*p)putchar (【8】); } 【参考答案】 【6】′\0′ 【7】s 【8】*p++ (7)以下程序将数组 a 的4个元素和数组 b 的6个元素写到名为 lett.dat 的二进制文件中, 请填空。 #include main () { FILE *fp; char a[4]="1234",b[6]="abcedf"; if((fp=fopen("【9】","wb"))=NULL)exit(0); fwrite(a,sizeof(char),4,fp); fwrite(b,【10】,1,fp); fclose(fp); } 【参考答案】 【9】lett.dat 【10】6*sizeof(char) (8)在 C 语言中(以16位 PC 机为例),一个 float 型数据在内存中所占的字节数为 4;一个 double 型数据在内存中所占的字节数为【11】。 【参考答案】 【11】8 (9) 以下程序输出的结果是【12】。 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 【参考答案】 【12】0 (10)以下函数的功能是求出能整除 x 且不是偶数的各整数,并按从小到大的顺序放在 pp 所指的数组中,这些除数的个数通过形参 n 返回。 例如,若 x 中的值为30,则有4个数符合要求,它们是1,3,5,15。 请按题意,完成填空。 试题程序: #include #include void fun (int x, int pp[], int *n) { int i,j=0; 【13】 if(x%i==0)pp[j++]=i; 【14】; } main () { int x,aa[1000], n, i ; clrscr(); printf("\nPlease enter an integer number : \n "); scanf ("%d ", &x); fun (x, aa, &n); for (i=0 ; i printf ("%d ", aa [i]); printf ("\n "); } 【参考答案】 【13】for (i=1 ; i (11)#include #include int fun(int *s, int t, int *k) { int i; *k=0; 【15】 if(s[*k] return【16】; } main() { int a[10]={ 876,675,896,101, 301,401,980,431,451,777},k; clrscr(); fun(a, 10, &k); printf("%d, %d\n ", k, a[k]); } 【参考答案】 【15】for (i=0 ; i (12)mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。 请填空。 int mystrlen(char *str) { int i; for(i=0;【17】! = ′\0′;i++); return(i); } 【参考答案】 【17】*(str+i)或 str[i] (13)以下程序的输出结果为【18】。 #define JFT(x)x*x main() { int a, k=3; a=++JFT(k+1); printf("%d",a); } 【参考答案】 【18】9 (14)以下定义的结构体类型拟包含两个成员,其中成员变量 info 用来存入整形数据;成员 变量 link 是指向自身结构体的指针,请将定义补充完整。 struct node { int info; 【19】link; }; 【参考答案】 【19】struct node * (15)设有以下结构体类型: struct st { char name[8]; int num; float s[4]; }student[50]; 并且结构体数组 student 中的元素都已有值,若要将这些元素写到硬盘文件 fp 中,请 将以下 fwrite 语句补充完整: fwrite(student,【20】,1,fp); 【参考答案】 【20】sizeo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 笔试 模拟