




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是()。A.44B.33C.34D.43
2.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序运行后的输出结果是()。A.5B.6C.8D.9
3.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
4.表达式“3.6-5/2+1.2+5%2”的值是()。
A.4.3B.4.8C.3.3D.3.8
5.
6.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
7.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中
8.若有定义语句:“intx=10;”,则表达式x-=x+x的值为()。
A.-20B.-l0C.0D.10
9.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。
A.O(1)B.O(log2n)C.O(n)D.O(n2)
10.下面程序段的运行结果是
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A.67B.0C.字符′C′的地址D.字符′C′
11.有以下程序.#include<stdio.h>main{charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar;c6=getchar;putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>则输出结果是()。A.1267B.1256C.1278D.1245
12.下列数据模型中,具有坚实理论基础的是()。
A.层次模型B.网状模型C.关系模型D.以上3个都是
13.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循环,不能确定次数
14.十进制数124转换成二进制数是()
A.111l010B.1111100C.1011111D.1111011
15.若有定义"int*p[3];",则以下叙述中正确的是()。
A.定义了一个基类型为int的指针变量p,该变量具有3个指针
B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针
C.定义了—个名为*p的整型数组,该数组含有3个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素
16.
17.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序运行时输入k并按<Enter>键,则输出结果为()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
18.若需要利用形参直接访问实参,则应把形参变量说明为____参数。
A.指针B.引用C.值D.变量
19.在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(FastBinaryIndexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的()
A.二叉搜索树,比较函数开销:1次运算/每字符
B.哈希表,hash算法开销:10次运算/每字符
C.链表,比较函数开销:1次运算/每字符
D.TRIE树,寻找子节点开销:1次运算/每字符
20.软件生命周期是指()。
A.软件的定义和开发阶段
B.软件的需求分析、设计与实现阶段
C.软件的开发阶段
D.软件产品从提出、实现、使用维护到停止使用退役的过程
二、2.填空题(20题)21.以下程序段的输出结果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
22.下面程序的功能是求整数m、n的最大公约数,请填空。
main()
{intm,n,r;
scanf("%d,%d",&m,&n);
if(【】){r=m;m=n;n=r;)
while(【】)
{r=m%n;m=n;n=r;}
printf("%d",m);
}
23.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。可行性研究阶段采用的是【】。
24.以下程序中给指针p分配3个double型动态内存单元,请填空。
#include<stdio.h>
main()
{double*p;
p=(double*)malloc((【】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
25.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填
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);
}
26.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
27.若输入字符串:(图片),则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
28.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
29.下面程序的运行结果是:【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
30.以下程序用来统计文件中字符的个数。请填空。
#include“stadio.h”
main()
{FILE*fp;longnum=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0penerror\n”);exit(0);}
while(【】)
{fsetc(fp);num++;}
printf(“num=%1d\n”,num-1);
fclose(fp);
}
31.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
32.若输入12、3、2、5、7,则以下程序的运行结果为【】。
intmax,min;
voidmax_min_value();
main()
{inti,number[5];
printf("输入5个整数;\n");
for(i=0;i<5;i++)scanf("%d",&number[i]);
maxminvalue(number,5);
printf("max=%d,min=%d\n",max,min);
getch();
}
voidmax_min_value(array,n)
intarray[],n;
{int*p;
max=min=*array;
for(p=array+1;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
33.执行下列程序的输出结果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
34.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
则程序运行后输出的结果是【】。
35.以下程序运行后的输出结果是【】。
#include<string.h>
cbar*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);
}
36.在计算机中,字符的比较是对它们的【】进行比较。
37.指针变量p和数组a的说明如下:
int*a[3]={"aa","bb","cc"},**p;
执行语句p=&a[2];后,*p指向的字符串是______。
38.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
39.有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是【】。
main()
{inta,b;
printf("Entera,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{while(a>b)a-=b;
while(b>a)b-=a;
}
printf("%3d%3d\n",a,b);
}
40.设a、b、c为整数,且a=2、b=3、c=4,则执行完以下语句后,a的值是【】。
a*=18+(b++)-(++c);
三、1.选择题(20题)41.以下叙述中正确的是
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类型变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
42.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}
A.5B.4C.6D.不确定
43.以下只有使用时才为该类型变量分配内存的存储类型说明是()
A.auto和static
B.auto和register
C.register和static
D.extern和register
44.以下4组用户定义标识符中,全部合法的一组是
A.mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.int12_001
45.以下4个程序中,完全正确的是
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.include<stdio.h>main(){/*programming*/printf("programming!\n");}
46.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。A.A.路径的集合B.循环的集合C.目标的集合D.地址的集合
47.实体是信息世界中广泛使用的一个术语,它用于表示()。
A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物
48.以下程序的输出结果是()main(){inta=-1,b=4,k;k=(++a<=0)&&!(b--<=0);printf("%d%d%d\n",k,a,B);}
A.104B.004C.103D.003
49.设有定义:intn1=0,n2,*p=&n2,*q=&nl;,下列赋值语句中与n2=n1;语句等价的是()。
A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
50.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
51.下列程序执行后的输出结果是
main()
{inta[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.3B.6C.9D.随机数
52.若定义了以下函数:voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是()
A.double*pB.float**pC.double**pD.float*p
53.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为()
A.7B.8C.9D.10
54.以下符合C语言语法的实犁常量是
A.1.2E0.5B.3.14159EC.5E-3D.E15
55.阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下说法正确的是()。
A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符
B.定义语句出错,Int无法被识别
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出Case的值
56.数据库的故障恢复一般是由()来执行恢复
A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户
57.以下程序的结果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}
A.100200B.57C.200100D.75
58.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
59.若有定义和语句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf(%d,%d\n",*p,**pp);则输出结果是()。
A.20,10B.20,20C.10,20D.10,10
60.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15
四、选择题(20题)61.
62.有以下程序程序运行后的输出结果是()。
A.2,3,1B.2,3,2C.2,3,3D.2,2,1
63.软件测试的目的是()。
A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误
64.
65.如果要在表单中创建一个普通文本框,下列标记中正确的是()。
A.<inputtype=”text”>
B.<inputtype=”password”>
C.<inputtype=”CheCkbox”>
D.<inputtype=”radio”>
66.设有定义:intm=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A.++mB.m+=1C.m++D.m+1
67.有以下程序
68.
69.下列程序的输出结果是()。#includeintfun(inta){intb=0;staticintc=4;a=c++;b++;return(a);}main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1);printf("%d\n",c);}A.4B.7C.6D.5
70.
71.
72.改变某个元素的文本颜色的CSS属性是()。
A.text—colorB.FgcoiorC.colorD.text—color
73.对长度为n的线性表排序,在最坏情况下'比较次数不是n(n一1),2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
74.
75.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式
76.若变量已正确定义,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++
77.有以下程序
main()
{
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf("%d,",*p);
}
程序运行后的输出结果是
A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,
78.
79.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
A.p=qB.*p=*qC.n=*qD.p=*n
80.以下选项中,能用作用户标识符的是()。A._0_B.8—8C.voidD.unsigned
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}
六、程序设计题(1题)82.请编写—个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:
参考答案
1.C语句charp[]={a,b,c);定义了一个一维字符数组p[],并用3个字符a,b,c进行了初始化;而语句q[]="abe"表示定义了一个一维字符数组,并用一个字符串常量"abc"进行了初始化。在C语言中,系统在每个字符串常量的最后自动加入一个字符\0作为字符串的结束符。所以函数sizeof(q)=4,而sizeof(p)=3,因而选项C为正确答案。
2.B由题可知,fun(&a[3])是将&a[3]作为参数,而fun(int*p)后执行的语句为p[5],由数组a可知输出的为6。
3.B解析:本题中,逻辑非“!”运算符比不等于“!=”运算符优先级高,因此第一次循环时!x!=0的运算结果为真,s的运算结果为1;第二次循环时!x!=0的运算结果为假,循环结束,输出s的结果为1。
4.D先计算“5/2”,结果取整数值2;然后计算“3.6-2”,结果与高精度数据保持一致,即1.6;再计算“1.6+1.2”,结果为2.8;接着计算“5%2”,结果为1;最后计算“2.8+1”,结果为3.8。故本题答案为D选项。
5.A
6.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
7.Cstrcat(s1,s2)函数的功能是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制到s1字符串,要保证sl的容量。
8.B表达式x-=x+X可以写成x=x-(x+x),所以X的值为-l0。
9.C
10.B解析:考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志'\\0'的地址,因而*(p+3)的值为0。
11.Dscanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,\n。
12.C在数据库设计中,目前常用的数据模型主要有三种,分别是层次模型、网状模型和关系模型。
层次模型是数据库系统中最早出现的数据模型。我们通常把满足以下两个条件的数据模型称为层次模型。
(1)有且仅有一个结点无双亲,这个结点称为根结点。
(2)其他结点有且仅有一个双亲。
层次模型用树形结构来表示各实体与实体间的联系。实体是数据库中数据描述的对象,可以是一个人、一种商品等。在层次模型中,每个结点表示一个记录类型,记录之间的联系用结点之间的连线表示,这种联系是父子之间一对多的联系。记录就是描述实体的相关数据。
如果取消层次模型中的两个限制,即允许一个以上的结点无双亲,则每一个结点可以有多个父结点,便形成了网状。我们把网状表示实体之间联系的模型称为网状模型。
关系模型用表格形式表示实体类型及其实体间的联系。关系模型是目前最重要的一种模型,它是建立在严格的数学概念的基础上的,具有最坚实的理论基础。关系模型的基本数据结构是二维表,每一张二维表称为一个关系。
13.D解析:break语句只能在循环体和switch语句体内使用,当break出现在switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体.而continue语句的作用是结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本程序中,变量i的初始值为0,判断while后面括号内表达式的值为真,执行循环体内的if语句,判断if后面括号内表达式的值为真,执行“continue;”语句.因continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断,所以i的值未发生变化,循环条件仍然为真,if语句也仍然成立,因此循环将无止境地进行下去。所以,4个选项中D为所选。
14.B
15.B解析:指针数组也是一种数组,所有有关的概念都适用于它。但它与普通的数组又有区别,它的数组元素是指针类型,只能用来存放地址。其格式为:存储类型数据类型*指针数组名[长度1],其含义为:定义了一个长度1的数组,其中数组元素为相应存储类型的指针,对比定义可知,选项A、C和D都不正确,所以,4个选项中选项B符合题意。
16.A
17.Dmain函数定义一个字符数组s,使用字符串“pmfc”初始化;然后通过getchar读取一个字符k到字符变量c;再将字符串s和字符c传入fun函数。函数fun首先通过while循环遍历字符串s,直到指针a指向字符串结束标识‘\\0’后的一个字符,如下图所示。接着通过while循环逆序遍历字符串s,首先a-1的字符位‘\\0’,它的ASCII值为0,小于b(字符‘k’)的ASCII值107,那么将‘\\0’赋给下标为5的元素位置。接着继续向前遍历,同理,将‘c’(ASCII值为99)赋给下标为4的元素位置,将‘f’(ASCII值为102)赋给下标为3的元素位置。由于‘m’(ASCII值为109)大于b,因此循环结束,将b(字符‘k’)赋给下标为2的元素位置,此时str字符串如下。故本题答案为D选项。
18.A
19.D
20.D通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。选项A、B、C选项均为生命周期的一部分。故选D选项。
21.2828解析:a*=16+(b++)-(++c)等价于a=a*(16+(b++)-(++c)),b++的值为3;++c的值为5,请注意前缀++和后缀++的用法。
22.m<n或n>mr或r!=0m<n或n>m\r\nr或r!=0解析:本题使用的是“辗转相除”法求两个数的最大公约数,即以两个数中较大的除以较小的,如果余数不为0,则将较小的数和余数做同样处理,直到被除断为止,此时较小的数就是两个数的最大公约数。本题第一空要求填写一个if语句的判断条件,如果满足此条件则交换m和n的值,再看后面while循环的循环体,使用m%n求余,则此if语句的作用应该是保证m是两个数中较大的那个,故第一空填m<n或n>m。接下来的while循环实现整个辗转相除的过程,其结束条件应该是余数r为0,所以while的循环条件应该填r或r!=0。
23.结构化分析方法结构化分析方法解析:结构化分析方法主要用于系统分析阶段;结构化设计方法主要用于系统设计阶段;结构化程序设计方法主要用于编码阶段。可行性研究属于系统分析阶段,因此,可行性研究阶段采用的是结构化分析方法。
24.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:该函数的调用格式是malloc(n),作用是申请n个字符的存储单元,并返回该存储区的首地址,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。所以在此空白处应该填写3*sizeof(double)或size(double)*3或其他等价的表达式。
25.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]。
26.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。
27.00解析:函数getchar()是从键盘得到用户输入的一个字符。用户输入的第1个字符是a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。
28.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。
29.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依然是原来的值。
30.!feof(fP)!feof(fP)解析:统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.dar”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。
31.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。
32.max=12min=2
33.66解析:++的优先级高于*,先作自加运算,b=++a*++a=2.0*3.0=6.0。b按实型输出6.000000。
34.929,2解析:本题开始定义了一个int型二维数组a,并赋以5个初值,系统使数组的最高维为3,并让a[0][0]=1,a[0][1]=2,a[1][0]=6,a[1][1]=9,a[2][0]=11,a[2][1]因为初值不够而初始化为0。然后定义一个行指针t指向数组a的首地址,因为表达式t[1]表示指向元素a[1][0]的int型指针,t[1]+1表示指向a[1][1]的int型指针,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指针,故(*t)[1]返回的是a[0][1]的值2。所以正确答案应该为9,2。
35.bcdefghabcdefgha解析:while循环的功能把字符从第二个元素开始左移一位,并将原第一个元素赋给最后一个元素。
36.ASCII码ASCII码解析:C语言中,字符也可以进行比较运算,并且是按照其ASCII码值进行的。
37.cc。cc。解析:a是指针数组,每个数组元素存放的是字符数据的地址,数组a的3个元素分别指向字符串常量'aa'、'bb'和'cc',指针p赋予数组元素a[2]的值,即指向第3个字符串。
38.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
39.1111解析:首先,程序通过scanf()函数将18和11分别读入到变量a和b中。然后,因为a!=b为真,进入外层while循环。此时a>b为真,执行a-=b;,a的值变为18-11=7:接下来b>a也为真,执行b-=a;,b的值变为11-7=4。此时a!=b还是为真,第2次进入外层循环。a>b为真,执行a-=b;,a的值变为7-4=3。b>a为真,执行b-=a;,b的值变为4-3=1接下来a!=b为真第3次进入外层循环。a>b为真,执行a-=b,a的值变为3-1=2。b>a为假,不执行b-=a;;然后第4次进入外层循环,a>b为真,执行a-=b,a的值变为2-1=1。b>a为假,不执行b-=a;此时a和b均为1了,a!=b条件为假,外层循环结束。故本题输出的结果是11。
40.3232解析:a*=18+(b++)-(++c)即a=a*(18+(b++)-(++c)),++c的值为5,a=2*(18+3-5)=32。b++是先使用b的值在对b加1,++c是先对c加1再使用c的值。
41.B解析:若在函数中定义与全局变量名字相同局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大;静态变量一旦定义,将在整个程序的运行期间都存在;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0。
42.C
43.B
44.A解析:标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列{例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM不是由字母或下划线开头,故选项C不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。
45.B解析:选项A)main();的分号是错误的,不能有分号;选项C)的注释语句多了两个*号;选项D)include前面没有#。
46.A解析:软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。此方法将程序看做是路径的集合,故选项A正确。
47.C解析:实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。
48.C
49.A解析:在定义指针变量p和q时,分别把变量n2和n1的地址赋给了指针变量p和q,所以*p和*q中内容就分别是变量n2和n1的值,所以语句*p=*q与语句n2=n1等价。因此选项A)正确。
50.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。
51.B解析:本题中,a[1][2]是二维数组中的第6个元素,对应for循环中i的值为5,p[5]=5+1。
52.C解析:从上面程序中对指针变量p值的定义可见,p所指单元的内容又是一个地址,这个地址是申请分配内存空间后的返回首地址,而分配的空间中又存放double型的数据,因此p是指向指针的指针变量,通过两层间接寻址对double型的数据操作,故正确答案应该是选项C。
53.BB)【解析】在具有11个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。
54.C解析:实型常量只能用十进制形式表示,不能用八进制或十六进制形式表示,实型常量可以用小数形式或指数形式表示,在C语言中,可以用指数形式将实型常量表示为数值和指数两部分,数值部分不能为空,指数部分只能为整数表示。选项A中1.2和0.5都不是整数,故选项A不正确;选项B中3.14159也不是整数,故选项B不正确;选项D中数值部分不能为空,故选项D也不正确;所以,4个选项中选项C符合题意。
55.B解析:C语亩足一种大小写敏感的语言,因此Int应为int,而CaseprintF则可以使用。
56.CC)【解析】数据库一旦发生故障,需要及时进行故障恢复,并由数据库管理员负责执行故障恢复。
57.B解析:全程变量是可以在子函数中对其值作改变,且它也可作为函数间的值传递。但当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变量将被屏蔽。
58.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。
59.D解析:本题考查指针变量的赋值。
**pp是定义了一个指向指针的指针变量,语句pp=&p的意思是将pp指向指针p,*p和**pp都是指针p所指的内存空间的内容,即b的值。
60.C2(n-1)
=2(5-1)=16
61.C
62.A对于表达式“z=x++,y++,++y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(z=x++),()r++),(++y)”。然后从左向右先计算表达式z----X++,因为x++先使用后自增,所以z的值为l:x的值为2。再计算逗号表达式第二个表达式y++,此时y的值为l,y++的值为2:最后计算第三个表达式++y,y的值为3。故本题答案为A。
63.D软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能,也不是为了评估软件或改正错误,因此本题答案为D)。
64.C
65.A
66.C选项中的四个表达式执行后,m的值都递增1。选项c)中,表达式的值是m递增前的值,为0。选项A)、B)、D)中,表达式的值都是m递增后的值,为1。
67.Afor分别输/klt[2][01,till[1],t[0][2]分别为357,答案选择A)。
68.B
69.Dstatic变量是局部度量,函数无法修改,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中C的值为5。
70.A
71.B
72.C
73.D陕速排序、冒泡排序和直接插入排序在最坏情况下,比较次数都是n(n一1)/2。堆排序在最坏情况下的比较次数最少,是O(1092n),因此本题答案为D。
74.C
75.C解析:在C语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。
76.A选项A)是非法的表达式,C语言中没有“<>”运算符。
77.A在本题中,程序首先定义了一个一维数组a,并赋了初值,数组a中元素的个数为10个,另外,程序定义了一个同类型的指针变量p。然后用一个for循环用指针变量p对数组进行操作。在循环开始前,将指针变量指向数组的开始位置,即指向数组的第一个元素。
第一次循环时,指针变量p指向的是数组第一个元素,输出该元素应该为1;然后指针变量自加1,即将指针变量后移一位,使其指向数组的第二个元素,开始第二次循环,此时,指针变量指向数组第二个元素,输出该元素为2,然后指针变量自加1。同样,利用指针变量p可以输出数组中后面的元素,直到输出最后一个元素。因此,最后的输出结果是1,2,3,4,5,6,7,8,9,0,。
78.C
79.Dn是一个整型变量,而非一个整型指针变量。
80.Ac语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B)选项中以数字8开头,所以错误。c)与D)中用的是关键字void与unsigned,因此错误。故本题答案为A)。
81.(1)错误:intproc(charstr[])正确:voidproc(char、tr[])(2)错误:str[j]=str[++];正确:str[j]=str[i];【解析】由主函数中的函数调用可知,函数proc没有返回值。因此,“intproccharstr[])”应改为“voidproc(charstr[])”;由函数proc可知,if语句块完成将字符串str中的第i个元素与第j个元素相交换。因此,“str[j]=str[i++];”应改为“str[j]=str[i];”。
82.[答案][解析]题目要求删除空格,也就是重新保存空格以外的其他字符。通过循环删除字符串中的每一个空格,将非空格字符进行重新保存。2022年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是()。A.44B.33C.34D.43
2.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序运行后的输出结果是()。A.5B.6C.8D.9
3.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
4.表达式“3.6-5/2+1.2+5%2”的值是()。
A.4.3B.4.8C.3.3D.3.8
5.
6.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
7.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中
8.若有定义语句:“intx=10;”,则表达式x-=x+x的值为()。
A.-20B.-l0C.0D.10
9.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______。
A.O(1)B.O(log2n)C.O(n)D.O(n2)
10.下面程序段的运行结果是
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A.67B.0C.字符′C′的地址D.字符′C′
11.有以下程序.#include<stdio.h>main{charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar;c6=getchar;putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>则输出结果是()。A.1267B.1256C.1278D.1245
12.下列数据模型中,具有坚实理论基础的是()。
A.层次模型B.网状模型C.关系模型D.以上3个都是
13.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循环,不能确定次数
14.十进制数124转换成二进制数是()
A.111l010B.1111100C.1011111D.1111011
15.若有定义"int*p[3];",则以下叙述中正确的是()。
A.定义了一个基类型为int的指针变量p,该变量具有3个指针
B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针
C.定义了—个名为*p的整型数组,该数组含有3个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素
16.
17.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序运行时输入k并按<Enter>键,则输出结果为()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
18.若需要利用形参直接访问实参,则应把形参变量说明为____参数。
A.指针B.引用C.值D.变量
19.在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(FastBinaryIndexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的()
A.二叉搜索树,比较函数开销:1次运算/每字符
B.哈希表,hash算法开销:10次运算/每字符
C.链表,比较函数开销:1次运算/每字符
D.TRIE树,寻找子节点开销:1次运算/每字符
20.软件生命周期是指()。
A.软件的定义和开发阶段
B.软件的需求分析、设计与实现阶段
C.软件的开发阶段
D.软件产品从提出、实现、使用维护到停止使用退役的过程
二、2.填空题(20题)21.以下程序段的输出结果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
22.下面程序的功能是求整数m、n的最大公约数,请填空。
main()
{intm,n,r;
scanf("%d,%d",&m,&n);
if(【】){r=m;m=n;n=r;)
while(【】)
{r=m%n;m=n;n=r;}
printf("%d",m);
}
23.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。可行性研究阶段采用的是【】。
24.以下程序中给指针p分配3个double型动态内存单元,请填空。
#include<stdio.h>
main()
{double*p;
p=(double*)malloc((【】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
25.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填
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);
}
26.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
27.若输入字符串:(图片),则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
28.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。
29.下面程序的运行结果是:【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
30.以下程序用来统计文件中字符的个数。请填空。
#include“stadio.h”
main()
{FILE*fp;longnum=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0penerror\n”);exit(0);}
while(【】)
{fsetc(fp);num++;}
printf(“num=%1d\n”,num-1);
fclose(fp);
}
31.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
32.若输入12、3、2、5、7,则以下程序的运行结果为【】。
intmax,min;
voidmax_min_value();
main()
{inti,number[5];
printf("输入5个整数;\n");
for(i=0;i<5;i++)scanf("%d",&number[i]);
maxminvalue(number,5);
printf("max=%d,min=%d\n",max,min);
getch();
}
voidmax_min_value(array,n)
intarray[],n;
{int*p;
max=min=*array;
for(p=array+1;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
33.执行下列程序的输出结果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
34.若有如下程序:
main()
{inta[][2]={1,2,6,9,11},(*t)[2];
t=a;
printf("%d,%d\n",*(t[1]+1),(*t)[1]);
}
则程序运行后输出的结果是【】。
35.以下程序运行后的输出结果是【】。
#include<string.h>
cbar*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);
}
36.在计算机中,字符的比较是对它们的【】进行比较。
37.指针变量p和数组a的说明如下:
int*a[3]={"aa","bb","cc"},**p;
执行语句p=&a[2];后,*p指向的字符串是______。
38.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
39.有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是【】。
main()
{inta,b;
printf("Entera,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{while(a>b)a-=b;
while(b>a)b-=a;
}
printf("%3d%3d\n",a,b);
}
40.设a、b、c为整数,且a=2、b=3、c=4,则执行完以下语句后,a的值是【】。
a*=18+(b++)-(++c);
三、1.选择题(20题)41.以下叙述中正确的是
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类型变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
42.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}
A.5B.4C.6D.不确定
43.以下只有使用时才为该类型变量分配内存的存储类型说明是()
A.auto和static
B.auto和register
C.register和static
D.extern和register
44.以下4组用户定义标识符中,全部合法的一组是
A.mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.int12_001
45.以下4个程序中,完全正确的是
A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}
B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}
C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
D.include<stdio.h>main(){/*programming*/printf("programming!\n");}
46.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。A.A.路径的集合B.循环的集合C.目标的集合D.地址的集合
47.实体是信息世界中广泛使用的一个术语,它用于表示()。
A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物
48.以下程序的输出结果是()main(){inta=-1,b=4,k;k=(++a<=0)&&!(b--<=0);printf("%d%d%d\n",k,a,B);}
A.104B.004C.103D.003
49.设有定义:intn1=0,n2,*p=&n2,*q=&nl;,下列赋值语句中与n2=n1;语句等价的是()。
A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
50.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据与相关文档的集合
51.下列程序执行后的输出结果是
main()
{inta[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.3B.6C.9D.随机数
52.若定义了以下函数:voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是()
A.double*pB.float**pC.double**pD.float*p
53.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为()
A.7B.8C.9D.10
54.以下符合C语言语法的实犁常量是
A.1.2E0.5B.3.14159EC.5E-3D.E15
55.阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下说法正确的是()。
A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符
B.定义语句出错,Int无法被识别
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出Case的值
56.数据库的故障恢复一般是由()来执行恢复
A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户
57.以下程序的结果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}
A.100200B.57C.200100D.75
58.下列正确的实型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
59.若有定义和语句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf(%d,%d\n",*p,**pp);则输出结果是()。
A.20,10B.20,20C.10,20D.10,10
60.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15
四、选择题(20题)61.
62.有以下程序程序运行后的输出结果是()。
A.2,3,1B.2,3,2C.2,3,3D.2,2,1
63.软件测试的目的是()。
A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误
64.
65.如果要在表单中创建一个普通文本框,下列标记中正确的是()。
A.<inputtype=”text”>
B.<inputtype=”password”>
C.<inputtype=”CheCkbox”>
D.<inputtype=”radio”>
66.设有定义:intm=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A.++mB.m+=1C.m++D.m+1
67.有以下程序
68.
69.下列程序的输出结果是()。#includeintfun(inta){intb=0;staticintc=4;a=c++;b++;return(a);}main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1);printf("%d\n",c);}A.4B.7C.6D.5
70.
71.
72.改变某个元素的文本颜色的CSS属性是()。
A.text—colorB.FgcoiorC.colorD.text—color
73.对长度为n的线性表排序,在最坏情况下'比较次数不是n(n一1),2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
74.
75.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式
76.若变量已正确定义,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++
77.有以下程序
main()
{
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf("%d,",*p);
}
程序运行后的输出结果是
A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,
78.
79.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()。
A.p=qB.*p=*qC.n=*qD.p=*n
80.以下选项中,能用作用户标识符的是()。A._0_B.8—8C.voidD.unsigned
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}
六、程序设计题(1题)82.请编写—个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国HR管理软件行业发展分析及投资战略预测研究报告
- 2025-2030中国ABS透明片行业市场深度调研及竞争格局与投资研究报告
- 2025-2030中国4-氨基苯酚市场销售策略及投资商机行业深度调研及投资前景预测研究报告
- 2025-2030中国2巯基乙醇行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国-版钥匙刀行业发展机遇与未来投资战略行业深度调研及投资前景预测研究报告
- 2025-2030SMD成型线绕线圈行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030DC和和DC转换器行业市场现状供需分析及投资评估规划分析研究报告
- 资源配置优化的总结与建议计划
- 领导班子建设与团队凝聚力计划
- 教材和教具资源统筹计划
- 第22课 现代科技革命和产业发展(课件)-【中职专用】《世界历史》(高教版2023基础模块)
- 云南省丽江市南瓜坪水库工程环境影响报告书
- 2024年中考英语热点阅读练习-人工智能AI(含解析)
- 2023广州美术学院附属中等美术学校(广美附中)入学招生测试卷数学模拟卷
- Module 5 Unit 2 公开课教学设计(外研版九年级下册教案)
- 第5课 中古时期的非洲和美洲(教学课件)-【中职专用】《世界历史》同步课堂(同课异构)(高教版2023•基础模块)
- 2024年江苏旅游职业学院单招职业适应性测试题库及答案解析
- 中药凝胶贴膏剂的研究进展及在产品开发中的应用
- 神经经济学展示
- 工业互联网标准体系(版本3.0)
- 危大工程安全检查录表
评论
0/150
提交评论