![2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页](http://file4.renrendoc.com/view/52f06a5108d373ea51f6384f4b0d9e74/52f06a5108d373ea51f6384f4b0d9e741.gif)
![2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页](http://file4.renrendoc.com/view/52f06a5108d373ea51f6384f4b0d9e74/52f06a5108d373ea51f6384f4b0d9e742.gif)
![2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页](http://file4.renrendoc.com/view/52f06a5108d373ea51f6384f4b0d9e74/52f06a5108d373ea51f6384f4b0d9e743.gif)
![2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页](http://file4.renrendoc.com/view/52f06a5108d373ea51f6384f4b0d9e74/52f06a5108d373ea51f6384f4b0d9e744.gif)
![2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页](http://file4.renrendoc.com/view/52f06a5108d373ea51f6384f4b0d9e74/52f06a5108d373ea51f6384f4b0d9e745.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.若有如下函数定义:doublefun(intx,inty){return(x+y);}return语句中表达式值的类型与说明的类型不一致,则以下叙述中正确的是()。
A.运行时出错B.函数返回的值为int型C.编译出错D.函数返回的值为double型
3.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
4.以下有关宏替换的叙述不正确的是()。
A.双引号中出现的宏名不替换B.使用宏定义可以嵌套C.宏定义仪仪是符号替换D.宏名必须用大写字母表示
5.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}编译连接后生成可执行文件tt.exe。若运行时输入以下命令行tt12345678程序运行后的输出结果是A.12B.12345C.12345678D.136
6.第
42
题
若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
7.
8.在单链表中,增加头结点的目的是()。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性的链式存储实现
9.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序运行后的输出结果是()。
A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3
10.以下正确的字符串常量是()。
A.\\\B.'abc'C.OlympicGames
11.关于数组和指针,以下说法错误的是()。
A.数组名本身就是一个指针,指向数组内存的起始位置
B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中
C.可以将指针指向一个同类型的数组
D.指针可以指向同类型的数组中的任意一个元素
12.
13.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()
A.78,45,57,25,41,89
B.89,78,57,25,41,45
C.89,78,25,45,41,57
D.89,45,78,41,57,25
14.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是
A.a^bB.a|bC.a&bD.a<<4
15.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}输出结果是()。A.28B.27C.42D.41
16.
17.以下说法正确的是()。
A.C语言只接受十进制的数
B.C语言只接受二进制、八进制、十六进制的数
C.C语言只接受二进制、十进制、十六进制的数
D.C语言只接受八进制、十进制、十六进制的数
18.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
19.下列叙述中不正确的是()。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.在C的函数中,最好使用全局变量
C.外部变量可以在函数之间传递数据
D.自动变量实质上是一个函数内部的局部变量
20.在位运算中,操作数每左移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
二、2.填空题(20题)21.以下程序的输出结果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
22.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。
23.软件结构是以【】为基础而组成的一种控制层次结构。
24.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填
main()
{
inti,a[20],sum,count;
sum=count=【】;
for(i=0;i<20;i++)scanf("%d("%d",【】);
for(i=0;i<20;i++)
{
if(a[i]>0)
{count++;
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
25.执行以下程序后的输出结果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
26.关系操作的特点是______操作。
27.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
28.Jackson方法是一种面向【】的结构化方法。
29.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%\n",p+9);
}
30.以下程序的输出结果是【】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",A);
}
31.语句:x++;++x;x=1/x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
32.执行以下程序段后,s的值为【】。
staticcharch[]="600";
inta,s=0;
for(a=0;ch[a]>='0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'0';
33.与十进制数101等值的二进制数为【】。
34.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。
35.用链表表示线性表的突出优点是______。
36.以下程序运行后的输出结果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
37.以下程序的输出结果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
38.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
39.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
40.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
三、1.选择题(20题)41.下面哪一个是正确的赋值语句?
A.a++;B.a==b;C.a+=b;D.a=1,b=1;
42.在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是
A.1B.2C.7D.11
43.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A.k=11,k=12,k=11
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
44.下列程序voidfunc1(inti);voidfunc2(inti)charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}执行后的输出结果是()
A.helloB.helC.hloD.hlrn
45.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
46.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0
47.已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义structa*f(intt1,int*t2,strcutat3,structa*t4)structap,*p1;inti;则正确的函数调用语句为
A.&p=f(10,&i,p,p1);
B.p1=f(i++,(int*)p1,p,&p);
C.p=f(i+1,&(i+2),*p,p);
D.f(i+1,&i,p,p);
48.下面结构体的定义语句中,不正确的是______。
A.structdate{intmonth;intday;intyear;}Structdatedatel;
B.stmctdate{intmonth;intday;intyear;}datel;
C.struct{intmonth;intday;intyear;}date1;
D.#defineDATEstmctdateDATE{intmonth;intday;intyear;}datel;
49.有以下程序:main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后的输出结果是()。
A.44B.33C.34D.43
50.设有以下函数f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}
A.789B.7911C.71013D.777
51.下面关于完全二叉树的叙述中,错误的是______。
A.除了最后—层外,每—层上的结点数均达到最大值
B.可能缺少若干个左右叶子结点
C.完全二叉树—般不是满二叉树
D.具有结点的完全二叉树的深度为[log2n]+1
52.以下选项中,正确运用指针变量的程序段是()。
A.int*i=NULL;
B.float*f=NULL;scanf("%d",i);*f=10.5;
C.chart='m',*C=&t;
D.long*L;*C=&t;L='0';
53.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是
A.i-1B.iC.i+1D.4-i
54.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
55.下列叙述中正确的是()。
A.软件交付使用后还需要进行维护
B.软件一旦交付使用就不需要再进行维护
C.软件交付使用后其生命周期就结束
D.软件维护是指修复程序中被破坏的指令
56.C语言规定如果调用fpute函数输出成功,则返回值是()
A.1B.输出的字符C.0D.TRUE
57.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
58.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
59.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
60.若fp是指向某文件的指针,且通过该文件指针读数据已读到文件末尾,则函数feof(fp)的返回值是()。
A.EOFB.-1C.1D.NULL
四、选择题(20题)61.
62.
63.执行以下程序时输人1234567<CR>,则输出结果是()。
#include<stdio.h>
main
{
inta=1,b;
scanf("%3d%2d",&a,&b);
printf("%d%d\n",a,b);
}
A.12367B.12346C.12312D.12345
64.数据库应用系统中的核心问题是()。
A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训
65.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能确定
66.若有以下程序
#include<stdio.h>
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf("%d\n",n);}
则以下叙述中不正确的是
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其他函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明
D.函数f无返回值,所以,可用void将其类型定义为无返回值型
67.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
68.已知字符A的ASCⅡ代码值是65,字符变量c1的直是A,c2的值是D。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A.A,BB.A,68C.65,66D.65,68
69.若有以下定义:intt[3][2];,能正确表示t数组元素地址的表达式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
70.结构化程序设计的3种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
71.下面描述中错误的是()。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
72.有以下程序:
程序运行后的输出结果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
73.以下选项中正确的定义语句是()。
A.doublea;b;B.doublea=b=7;C.doublea=7,b=7;D.double,a,b;
74.算法的有穷性是指()。
A.算法程序的运行时问是有限的。
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
75.有以下程序:
程序运行后的输出结果是()。
A.9.One*World
B.9.One*Dream!
C.10.One*Dream!
D.10.One*World
76.在Internet中,域名服务器的主要功能是实现()的转换。
A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问
77.在软件设计中,不属于过程设计工具的是()。
A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图
78.
79.有以下程序:
}、、、程序运行后的输出结果是()。
A.一263B.2C.0D.一26
80.以下叙述中正确的是()。
A.c语言程序将从源程序中第一个函数开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.c语言规定必须用main作为主函数名,程序从此开始执行,在此结束
D.main作为用户标识符,用以命名任意一个函数作为主函数
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.下列程序定义了M×M的二维数组,并在主函数中赋值。请编写函数proc(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如,若a数组中的值为则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.D
2.D题干中“x+y”是整型,函数的返回值是double类型,由于整型可以自动转换成double类型,因此函数值返回时自动转换成double类型。故本题答案为D选项。
3.D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。
4.D解析:本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:①定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
5.D解析:运行时输入该命令后,参数argc的值为4,字符串数组argv[1]、argv[2]、argv[3]分别为“12”、“345”、“678”,然后取这3个参数的第一个字符,将其转化成原来的数字并组合成一个新的三位数。
6.D在C程序中,可以用字符数组存放一个字符串,然后输出该字符串,也可以用字符指针指向一个字符串。
题目中用字符数组a[]来存放字符串'Itismine',a为数组名,表示首元素的地址,即字母I的地址。a+1表示数组中第二个元素t的地址,选项A正确。当用字符串指针指向字符串时,只是将字符串的第一个元素的地址赋给指针,当该指针指向其他字符串时,只需将该字符串的第一个元素地址赋给这个指针即可,和字符串的长度没有关系,选项B也是正确的。指针变量的值为元素的地址,和元素具体的值没有关系,当指针指向不同的元素时,存放的地址也会发生改变,故选项C是正确的。数组a初始化时没有指定数组长度,系统自动根据初值个数确定数组长度,题目中只是将10个有效字符存放到数组中,不能说明这个数组只能存放10个字符。
7.A
8.A根据单位链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。
9.Dmain函数中,首先定义两个整型变量i和j,初值为3和7,并将i的地址赋给p,j的地址赋给q,传给swap函数。swap函数接收两个整型指针变量a、b,然后使用整型变量t交换a、b所指向的值并输出。通过指针变量的交换改变了实参i、j的值,使得i=7,j=3。指针变量tp交换a和b的值,由于a、b的值是p、q值的复制,因此这次交换只改变了形参a、b的值,对实参p、q的值没有改变,此时指针变量a指向j,指针变量b指向i。函数最后输出*a和*b,所以输出3,7。由于swap函数改变了p和q指向的值,因此main函数输出i的值为7,j的值为3,*P的值为i,*q的值为j。最终程序输出:3,7,7,3,7,3。故本题答案为D选项。
10.D解析:在C语言中,字符串常量是以双引号括起来的字符序列。故选项B和C不正确。字符序列中可包含一些转义字符,转义字符都是以“\\”开头的。选项A中包含了三个“\\”,前两个(\\\\)代表了一个“\\”字符,后面一个和“'”一起(\\”)被看作一个……,所以该字符串缺少一个结束的“'”,故不正确。选项D的两个……之间没有任何字符,代表的是一个空串,是合法的字符串常量,故应该选择D。
11.BC语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,不可以读入数据,选项B错误;可以将指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确。故本题答案为B选项。
12.B
13.B
14.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。
15.C只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。
16.A
17.DC语言中,整型常量可以用十进制、八进制和十六进制表示。故本题答案为D选项。
18.A:在一个无向图G中,若从顶点Vi到顶点Vj有路径相连,则称Vi和Vj是连通的。连通图是指任意两个结点之间都有一个路径相连。6个节点的无向图,至少要5个边才能确保是任意两个节点之间都有路径相连。下图是一种可能的连接方式:故本题选A。
19.B解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放;全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存不定的情况下,最好使用全局变量。
20.D解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的n次幂,右移n位相当于除以2的n次幂。
21.abcabc解析:字符串的结束标记'\\0',当输出一个存放在字符数组中的字符串时,只需输出到'\\0'为止,而不管其后有什么数据。本题给字符数组s的元素s[3]赋值为'\\0',故只能输出3个字符“abc”。
22.外模式外模式解析:外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。
23.模块模块
24.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本题要求从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。程序中首先要对存放正数个数的变量count及存放和值的变量sum初始化为0,所以第一空应填0。接着要求从终端读入数据到数组中,可以通过scanf函数实现,因此第二空应填&a[i]。最后通过sum+=a[i];语句累加正数a[i]的值到sum中,因此第三空应填a[i]。
25.a=14a=14解析:逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。
26.集合集合
27.“filea.dat”“r”“filea.dat”,“r”解析:考查对文件的操作。fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。
28.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
29.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。
30.1616解析:在程序中首先将8赋值给变量a,然后在进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。
31.x+=1x+=1解析:本题考查'++'、'--'运算符。'++'、'--'只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。
32.600600解析:程序中for循环的条件是当前字符大于或等于字符\'0\'且小于或等于字符\'9\'的ASCII码值,则s=10*s+ch[a]-\'0\'。计算结果是将字符串'600'转换为整型数600。
33.1100101
34.11解析:在执行逻辑表达式“j=!ch&&i++”时,首先判断j=!ch的值,因为“ch='$'”不为0,所以“j=!ch=0”,编译系统便不再计算表达式“i++”的值,i的值不变,仍为1。
35.便于插入和删除操作。便于插入和删除操作。解析:为了克服顺序表中插入和删除时需要移动大量数据元素的缺点,引入了链式存储结构。链表表示线性表的突出优点是插入和删除操作方便,不必移动数据元素,执行效率高。
36.bcdefgha
37.functionrunningresultis:9.0
38.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
39.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为“a”,执行一次循环后变为“c”,之后再变成“e”,当其变为“g”时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式“i-'a'+'A'”即表示输出i对应的大写字母,结果为ACE。
40.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
41.B解析:C语言中赋值语句是由赋值表达式加“;”构成的。赋值表达式的形式为:变量=表达式;。选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句。只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符。
42.D解析:结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量i所占用的内存是2字节,字符型变量ch所占用的内存是1字节,双精度型变量f所占用的内存是8字节,三者相加即可。
43.D解析:在C语言格式字符的输出中,“%d”是以带符号的十进制形式输出整数;“%60”是以8进制无符号形式输出整数(不输出前导符o);“%x”是以16进制无符号形式输出整数(不输出前导符Ox)。
44.C
45.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
46.C(33)C)解析:题中变量w的定义为double型,函数fun2()的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。
47.B解析:本题目中函数f的返回值为结构类型的指针,函数的四个形参分别为:t1为整型,t2为整型的指针,t3为structa类型,t4为structa类型的指针。在进行函数调用的时候,函数的实参必须要与形参说明相对应,函数的返回值也要赋给相应类型的变量。选项A)函数的返回值不能赋给一个常量;选项C)&(i+2)没有什么意义;选项D)返回值没有传递给任何变量,向函数传递的应该是structa类型的指针,可是传的却是变量。
48.A
49.C解析:字符数组即可以用{初始化列表}来初始化,也可以用一个字符串常量来初始化。但字符串常量系统会自动为其添加结束标记'\\0',故比实际长度要多一位,所以本题输出为34,应该选择C。
50.A解析:本题考查静态变量的问题。函数f中c是静态变量存放在静态存储区,在程序的整个运行期间都不释放占据的存储单元。函数f被调用3次,调用过程如下。
第1次调用;a=2、b=0、c=3,执行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7
第2次调用:a=2、b=0、c=4.执行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8
第3次调用:a=2、b=0、c=5,执行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9
所以输出结果为选项A。
51.B解析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后—层上只缺少右边的若干子结点(叶子结点)的二叉树。
52.D解析:选项A定义了一个整型变量i,并且初始化让它指向NULL,接着通过scarnf()函数,改变i指向的存储空间的值,选项A中首先定义了整型指针变量i并初始化为NULL,即表示指针i不指向任何存储单元,即此时还没有为i在内存中开辟存储单元,而在scanf()函数中第二个参数是地址参数,显然在这里i不表示地址,所以下面的scanf('%d',i)语句是不正确的,故选项A不正确。选项B定义了一个实型指针变量f并初始化使它指向NULL,即还没有为f在内存中开辟存储单元,不能向*f代表的存储单元(不存在)中写数据,故选项B错误;选项C中首先定义了一个字符变量t并给它赋初值\'m\',然后定义一个字符型指针c并让它指向了变量t,这一部分正确,然后接着用了一个语句“*c=&t;”应该将该语句中c前的*去掉,故选项C运用指针变量不正确。选项D中的\'\\0\'是一个转移字符,称作“空值”,可以给指针变量L赋值。所以,4个选项中选项D符合题意。
53.B解析:本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个for循环控制空格的输出,第二个for循环控制的输出。而在第i行,输出的第一个元素是num[i][i],所以下划线处应填i。
54.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
55.A解析:维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。
软件维护通常有以下四类;
①为纠正使用中出现的错误而进行的改正性维护;
②为适应环境变化而进行的适应性维护;
③为改进原有软件而进行的完善性维护;
④为将来的可维护和可靠而进行的预防性维护。
软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项B、C、D中的说法都是错误的。
56.B
57.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
58.Bscanf(\u3000)语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf(\u3000)函数不能输入空格;getehar(\u3000)函数用于输入字符,其调用形式为:ch=getelaar(\u3000),getehar(\u3000)函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets(\u3000)函数的凋用形式为:gets(str_adr),其中stradr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。9ets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc(\u3000)函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回。
59.C解析:静态局部变量在编译时赋初值,即只赋初值一次,在程序运行时它已有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值并返回主函数。
60.C解析:EOF是指向文本文件的结束标志,NULL是打开文件错误时的返回值。feof(fp)用来判断文件指针是否指向了文件末尾,如果指向了文件末尾就返回1,否则返回0。文本文件和二进制文件均可使用此函数。
61.C
62.D
63.Dscanf函数中的格式控制说明为”%3d%2d”,分别选中输人中的三位和两位,因此a=123,b=45。因此正确答案为D)选项。
64.A数据库应用系统中的核心问题是数据库的设计。故答案为A选项。
65.B当a=1时,(a==1)||(a!=1)为真;当a!=1时,(a==1)||(a!=1)也为真,故正确答案为B)。
66.C本题主要考查函数说明的位置及调用。
函数的说明有时可以缺省,在缺省时,必须先被定义后被调用。函数说明的位置可以是所有函数定义的外部,也可以是某一函数内部,对于后者,函数说明的作用域将被限制在该函数定义内部。函数说明是一条独立的语句,其中<形式参数>部分可以省略。当函数在调用时,如果实参的数据类型与函数说明中对应的形参数据类型不兼容,C语言将不能编译通过。不管函数被说明在哪里,我们需要注意的是:函数在被调用前必须先被说明或定义。
在本题中,程序首先说明了一个无返回值的函数f,然后在主函数中又说明了这个函数f,接着调用这个函数,虽然函数被重复说明,但其符合先说明后调用的规定。程序执行时,编译系统不报错。
根据上面的分析我们可以知道,本题四个选项中,描述不正确的是C,虽然函数被重复说明,但编译系统不报错。其他说法都正确。因此本题答案选C。
67.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
68.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。
69.C解析:选项A和B两个表达式都越界了;选项D中,*t[2]是目标变量,即—个整型值,而不是地址值。
70.D结构化程序设计的基本要点:①采用自顶向下、逐步求精的程序设计方法;②任何程序都可由顺序、选择和循环3种基本控制结构构造。
71.A详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。
72.B该程序首先给一维数组赋值,然后三次调用fun函数,其中fun(a,0,3);功能是将一维数组中第1个元素和第4个元素互换,第2个元素和第3个元素互换;其中fun(a,4,9);功能是将一维数组中第5个元素和第10个元素互换,第6个和第9个元素互换,第7个元素和第8个元素互换;其中fun(a.O,9);功能是将将一维数组中第l个元素和第10个元素互换,第2个元素和第9个元素互换……依此类推。因此B选项正确。
73.C解析:C语言规定,每个语句和数据定义以分号结束,则说明选项A是两条语句,前—条是对变量a作双精度型定义的语句,而后一个“b;”是一个缺少类型的不正确的定义形式,如果是定义多个变量,则应用逗号隔开;当定义多个变量赋同—个值时,不能用等式连写的方式,如选项B的“double\u3000a=b=7;”应写成“double\u3000a=7,b=7;”所以选项B错误,选项C正确;在定义语句时,类型与变量名之间应用空格分隔,而不是逗号,所以选项D错误。
74.A算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
75.C可以将二维数组str看成是一个特殊的
76.B在Internet中,把域名翻译为IP地址的软件称为域名系统DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和IP地址的转换。
77.D解析:PDL一种设计性语言,用于书写软件设计规约。它是软件设计中广泛使用的语言之一。N-S图是无线的流程图,是算法描述工具;PAD图是问题分析图,它用二维树状结构的图表示程序的控制流,将这种图转换为程序代码比较容易。此3类均是过程设计工具,数据流图(DataFunctionDiagram):又名数据功能图表,简称DFD,是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
78.B
79.Disspaee(c)检查参数c是否为空格字符。若参数e为空格字符,则返回TRUE,否则返回NULL(0)。Is—di#t(c)函数检查参数c是否为阿拉伯数字0到9。返回值若为阿拉伯数字,则返回TRUE,否则返回NULL(O)。fLm()函数的第一个for循环判断字符串是否为负号。第二个for循环获取符号后面的数字字符,并将它们转化为整数。遇到了非数字的字符跳出,最后返回数组的结果。因此,可知首先获取负号,紧接着获取数值26,遇到了字符a,跳出返回一26,因此打印的结果是一26。故答案为D选项。
80.C\n一个c语言源程序至少包含一个main函数。无论main函数在程序中的位置如何,它都是C语言程序的主函数,是程序执行的入口和出口。
\n
81.(1)错误:if(strcmp((pstr+i),(pstr+j))>o)
正确:if(strcmp(*(pstr+i),*(pstr+j))>0)
(2)错误:*(pstr+j)=*P
正确:*(pstr+j)=p
【解析】变量pstr表示的是字符串数组的首地址,pstr+i表示的是字符串首地址偏移量为i处的地址。程序中要比较的是字符,因此,“if(strcmp((pstr+i),(pstr+j))>0)”应改为“if(strcmp(*(pstr+i),*(pstr+j))>0)”;根据程序可知,要交换的是字符串的首地址而不是字符串的内容,因此,“*(pstr+j)=*p”应改为“*(pstr+j)=P”。
82.
【解析】要求出数组周边元素的平方和,首先要找到二维数组所有的周边元素。二维数组的周边元素的特点为行下标或列下标为0或M一1。根据这个特点,找出二维数组中所有的周边元素,求出其平方和放在变量s中。最后将变量s返回到主函数中。
2022年安徽省巢湖市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.若有如下函数定义:doublefun(intx,inty){return(x+y);}return语句中表达式值的类型与说明的类型不一致,则以下叙述中正确的是()。
A.运行时出错B.函数返回的值为int型C.编译出错D.函数返回的值为double型
3.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
4.以下有关宏替换的叙述不正确的是()。
A.双引号中出现的宏名不替换B.使用宏定义可以嵌套C.宏定义仪仪是符号替换D.宏名必须用大写字母表示
5.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}编译连接后生成可执行文件tt.exe。若运行时输入以下命令行tt12345678程序运行后的输出结果是A.12B.12345C.12345678D.136
6.第
42
题
若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
7.
8.在单链表中,增加头结点的目的是()。
A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性的链式存储实现
9.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序运行后的输出结果是()。
A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3
10.以下正确的字符串常量是()。
A.\\\B.'abc'C.OlympicGames
11.关于数组和指针,以下说法错误的是()。
A.数组名本身就是一个指针,指向数组内存的起始位置
B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中
C.可以将指针指向一个同类型的数组
D.指针可以指向同类型的数组中的任意一个元素
12.
13.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()
A.78,45,57,25,41,89
B.89,78,57,25,41,45
C.89,78,25,45,41,57
D.89,45,78,41,57,25
14.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是
A.a^bB.a|bC.a&bD.a<<4
15.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}输出结果是()。A.28B.27C.42D.41
16.
17.以下说法正确的是()。
A.C语言只接受十进制的数
B.C语言只接受二进制、八进制、十六进制的数
C.C语言只接受二进制、十进制、十六进制的数
D.C语言只接受八进制、十进制、十六进制的数
18.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A.5B.6C.7D.8
19.下列叙述中不正确的是()。
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.在C的函数中,最好使用全局变量
C.外部变量可以在函数之间传递数据
D.自动变量实质上是一个函数内部的局部变量
20.在位运算中,操作数每左移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
二、2.填空题(20题)21.以下程序的输出结果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
22.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______是用户的数据视图,也就是用户所见到的数据模式。
23.软件结构是以【】为基础而组成的一种控制层次结构。
24.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填
main()
{
inti,a[20],sum,count;
sum=count=【】;
for(i=0;i<20;i++)scanf("%d("%d",【】);
for(i=0;i<20;i++)
{
if(a[i]>0)
{count++;
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
25.执行以下程序后的输出结果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
26.关系操作的特点是______操作。
27.以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
28.Jackson方法是一种面向【】的结构化方法。
29.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%\n",p+9);
}
30.以下程序的输出结果是【】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",A);
}
31.语句:x++;++x;x=1/x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
32.执行以下程序段后,s的值为【】。
staticcharch[]="600";
inta,s=0;
for(a=0;ch[a]>='0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'0';
33.与十进制数101等值的二进制数为【】。
34.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。
35.用链表表示线性表的突出优点是______。
36.以下程序运行后的输出结果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
37.以下程序的输出结果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
38.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
39.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
40.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
三、1.选择题(20题)41.下面哪一个是正确的赋值语句?
A.a++;B.a==b;C.a+=b;D.a=1,b=1;
42.在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是
A.1B.2C.7D.11
43.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A.k=11,k=12,k=11
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
44.下列程序voidfunc1(inti);voidfunc2(inti)charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}执行后的输出结果是()
A.helloB.helC.hloD.hlrn
45.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
46.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序执行后变量w中的值是A.5.21B.5C.5.0D.0.0
47.已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义structa*f(intt1,int*t2,strcutat3,structa*t4)structap,*p1;inti;则正确的函数调用语句为
A.&p=f(10,&i,p,p1);
B.p1=f(i++,(int*)p1,p,&p);
C.p=f(i+1,&(i+2),*p,p);
D.f(i+1,&i,p,p);
48.下面结构体的定义语句中,不正确的是______。
A.structdate{intmonth;intday;intyear;}Structdatedatel;
B.stmctdate{intmonth;intday;intyear;}datel;
C.struct{intmonth;intday;intyear;}date1;
D.#defineDATEstmctdateDATE{intmonth;intday;intyear;}datel;
49.有以下程序:main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后的输出结果是()。
A.44B.33C.34D.43
50.设有以下函数f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}
A.789B.7911C.71013D.777
51.下面关于完全二叉树的叙述中,错误的是______。
A.除了最后—层外,每—层上的结点数均达到最大值
B.可能缺少若干个左右叶子结点
C.完全二叉树—般不是满二叉树
D.具有结点的完全二叉树的深度为[log2n]+1
52.以下选项中,正确运用指针变量的程序段是()。
A.int*i=NULL;
B.float*f=NULL;scanf("%d",i);*f=10.5;
C.chart='m',*C=&t;
D.long*L;*C=&t;L='0';
53.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是
A.i-1B.iC.i+1D.4-i
54.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
55.下列叙述中正确的是()。
A.软件交付使用后还需要进行维护
B.软件一旦交付使用就不需要再进行维护
C.软件交付使用后其生命周期就结束
D.软件维护是指修复程序中被破坏的指令
56.C语言规定如果调用fpute函数输出成功,则返回值是()
A.1B.输出的字符C.0D.TRUE
57.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
58.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
59.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
60.若fp是指向某文件的指针,且通过该文件指针读数据已读到文件末尾,则函数feof(fp)的返回值是()。
A.EOFB.-1C.1D.NULL
四、选择题(20题)61.
62.
63.执行以下程序时输人1234567<CR>,则输出结果是()。
#include<stdio.h>
main
{
inta=1,b;
scanf("%3d%2d",&a,&b);
printf("%d%d\n",a,b);
}
A.12367B.12346C.12312D.12345
64.数据库应用系统中的核心问题是()。
A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训
65.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能确定
66.若有以下程序
#include<stdio.h>
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf("%d\n",n);}
则以下叙述中不正确的是
A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B.若在主函数前对函数f进行说明,则在主函数和其他函数中都可以正确调用函数f
C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明
D.函数f无返回值,所以,可用void将其类型定义为无返回值型
67.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
68.已知字符A的ASCⅡ代码值是65,字符变量c1的直是A,c2的值是D。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A.A,BB.A,68C.65,66D.65,68
69.若有以下定义:intt[3][2];,能正确表示t数组元素地址的表达式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
70.结构化程序设计的3种结构是()。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
71.下面描述中错误的是()。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
72.有以下程序:
程序运行后的输出结果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
73.以下选项中正确的定义语句是()。
A.doublea;b;B.doublea=b=7;C.doublea=7,b=7;D.double,a,b;
74.算法的有穷性是指()。
A.算法程序的运行时问是有限的。
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
75.有以下程序:
程序运行后的输出结果是()。
A.9.One*World
B.9.One*Dream!
C.10.One*Dream!
D.10.One*World
76.在Internet中,域名服务器的主要功能是实现()的转换。
A.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年芳香族聚氨酯水分散液项目可行性研究报告
- 2025至2031年中国胸腺五肽行业投资前景及策略咨询研究报告
- 2025至2031年中国直滑式导电塑料电位器行业投资前景及策略咨询研究报告
- 2025至2031年中国烘烤纸盒行业投资前景及策略咨询研究报告
- 2025至2031年中国智能数字兆欧表行业投资前景及策略咨询研究报告
- 2025年家用米糊豆浆机项目可行性研究报告
- 2025至2031年中国冷冻芹菜水饺行业投资前景及策略咨询研究报告
- 2025年全自动脚轮旋铆机项目可行性研究报告
- 2025年三头插销项目可行性研究报告
- 2025至2030年预处理饲料硫酸亚铁项目投资价值分析报告
- 法律职业伦理(第二版)完整版教学课件全书电子讲义(最新)
- ESD测试作业指导书-防静电手环
- 船模制作教程(课堂PPT)课件(PPT 85页)
- 高一(4)班分科后第一次班会课件ppt课件(PPT 29页)
- 春季开学安全第一课PPT、中小学开学第一课教育培训主题班会PPT模板
- JJG30-2012通用卡尺检定规程
- 部编版人教版二年级上册语文教材分析
- APR版制作流程
- 《C++程序设计》完整教案
- 美国LM2500舰用燃气轮机
- 《公共政策分析》课件.ppt
评论
0/150
提交评论