版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河南省郑州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的运行结果是()。
A.6B.3C.8D.12
2.现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个节点。structnode{chardata;structnode*next;}*p,*q,*r;
现要将q和r所指节点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是()。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
3.下列程序是用来判断数组中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun
A.7,431B.6C.980D.6,980
4.以下叙述中错误的是A.算法正确的程序最终一定会结束
B.算法正确的程序可以有零个输出
C.算法正确的程序可以有零个输入
D.算法正确的程序对于相同的输入一定有相同的结果
5.设有一个栈,元素依次进栈的顺序为A、B、C、D、E。下列()是不可能的出栈序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
6.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()。
A.O(0)B.O(1)C.O(n)D.O(n2)
7.以下叙述中错误的是()。
A.形参可以是常量、变量或表达式
B.实参可以是常量、变量或表达式
C.实参的类型应与形参的类型赋值兼容
D.实参的个数应与形参的个数一致
8.
9.下列运算符中,运算对象必须是整型的是()。
A./B.%=C.=D.&
10.若果要求一个线性表既能较快查找,又能适应动态变化的要求,可以采用()查找方法。
A.分块B.顺序C.二分D.散列
11.已知大写字母A的ASCII值是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’
12.下列程序的输出结果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
13.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
A.&.B.^C.||D.~
14.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是()。
A.9B.11C.15D.不能确定
15.
16.折半查找法的查找速度一定比顺序查找法快()。
A.正确B.错误
17.若有定义“intk=7,x=12;”,则以下表达式值为3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
18.
19.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
20.
有以下程序:
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]);
printf("\n");}}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是()。
A.i-1B.iC.i+1D.4一i
二、2.填空题(20题)21.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
22.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
23.以下程序的输出结果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
24.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。
25.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。
26.以下程序运行后输入3,abcde<回车>,则输出结果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
27.有以下定义和语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
28.以下程序的输出结果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
29.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
30.如果调用fopen函数不成功,则函数返回【】;如果调用fclose函数不成功,则函数返回【】。
31.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
32.数据库管理系统是位于用户与______之间的软件系统。
33.软件工程研究的内容主要包括:【】技术和软件工程管理。
34.下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,I;
a=c=0;
for(I=0;I<=10;I+=2)
{a+=I;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
35.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。
36.下列程序输出的结果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
37.以下程序运行后的输出结果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
38.用十六进制给存储器中的字节地址进行编号,其地址编号从0000到FFFF,则该存储器容量是【】。
39.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara='A';
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
40.算法执行过程中所需要的基本运算次数称为算法的______。
三、1.选择题(20题)41.有如下程序:main(){charch[2][5]={"6937","8254"},*p[2];inti,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.69825B.63825C.693825D.6385
42.以下能正确定义整型变量a,b和c,并为其赋初值1的语句是______。
A.inta=b=c=1;B.inta,b,c=1;C.a=b=c=1;D.inta=1,b=1,c=1;
43.下列叙述中正确的是()。
A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式
B.实型变量中允许存放整型数
C.若a和b类型相同,在执行了赋值a=b后,b中的值将放入a中,但b中的值不变
D.在C程序中,求余运算符“%”两边的类型相同时才能进行运算
44.能将高级语言程序转换成目标语言程序的是______。
A.调试程序B.解释程序C.编译程序D.编辑程序
45.字符(char)型数据在微机内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCII码
46.按照“先进后出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
47.以下程序的输出结果是main(){intb[3][3]={0,1,2,O,l,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n",t);}
A.3B.4C.1D.9
48.以下叙述中错误的是()
A.在C程序中,APH和aph是两个不同的变量
B.C程序中的变量,代表内存中的一个存储单元,它的值可以根据需要随时修改
C.在C程序中,无论是整数还是实数,都能准确无误地表示
D.在C程序中,一个正整数可以用十进制、八进制和十六进制的形式来表示
49.下列合法的整型常量的表示是
A.98B.oXdeC.32767D.0xDG
50.程序中对fun()函数有如下说明void*fun();此说明的含义是______。
A.fun函数无返回值
B.fun函数的返回值可以是任意的数据类型
C.fun函数的返回值是无值型的指针类型
D.指针fun指向一个函数,该函数无返回值
51.若运行以下程序时,从键盘输入ADescriptor<回车>,则下面程序的运行结果是()。#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getehar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
52.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。
A.0,0B.0,1C.1,1D.程序进入无限循环
53.若调用fputc函数输出字符成功,则其返回值是()。
A.EOFB.1C.0D.输出的字符
54.下列描述中不正确的是()。
A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出
C.可以对整型数组进行整体输入、输出
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
55.下列程序执行后输出的结果是()#include<stdio.h>f(intA){intb=0;staticc=3;a=c++,b++;return(A);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}
A.3B.0C.5D.4
56.以下正确的说法是______。
A.实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共用一个存储单元
C.只有当实参和与其对应的形参同名时才共用存储单元
D.型参是虚拟的,函数在没有被调用时,不占用存储单元
57.在面向对象方法中,()描述的是具有相似属性与操作的一组对象。
A.属性B.事件C.方法D.类
58.以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)If(a[i]<a[p])______,return(p);}在横线处应填入的是______。
A.i=pB.a[p]=a[i]C.p=jD.p=i
59.if语句的基本形式为:if(表达式)语句,其中“表达式”()。
A.可以是任意合法的表达式B.必须是逻辑表达式C.必须是逻辑表达式或关系表达式D.必须是关系表达式
60.下面的程序main(){intx=3;do{printf("%d\n",x-=2);}while(!(--x));}
A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环
四、选择题(20题)61.若有以下的定义:‘intt[3][2];”,能正确表示t数组元素地址的表达式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
62.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是().
A.编译程序B.操作系统C.教务管理系统D.汇编程序
63.
64.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。A.A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码
65.
66.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include<stdio.h>
#include<string.h>
voidmain()
{charss[10]="12345",
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
67.第
1
题
若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是
A.sizeof,&=,<<,^
B.sizeof,<<,^,&=
C.^,<<,sizeof,&=
D.<<,^,&=,sizeof
68.利用fseek函数可实现的操作是()。
A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确
69.
70.下列哪个不属于DOM元素结点类型?
A.元素结点B.文本结点C.属性结点D.样式结点
71.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程
B.软件从需求分析、设计、实现到测试完成的过程
C.软件的开发过程
D.软件的运行维护过程
72.4个元素A、B、C、D依次入栈,入栈过程中允许栈顶元素出栈,假设某一时刻栈的状态是C(栈顶)、B、A(栈底),则不可能的出栈顺序是()。
A.D、C、B、A
B.C、B、D、A
C.C、A、D、B
D.C、D、B、A
73.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
74.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中
75.以下叙述中错误的是()。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界的出错信息”
D)可以通过赋初值的方式确定数组元素的个数
76.下列叙述中正确的是()。
A.算法的执行效率与数据存储结构无关
B.算法的空间复杂度是指算法程序中指令(或语句)的条数
C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
D.以上3种描述都不对
77.
78.
79.
80.有以下程序:
程序运行后的输出结果是()。
A..3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,lD.6,6,6,6,6,6,
五、程序改错题(1题)81.下列给定的程序中,函数proc的功能是:判断字符ch是,与str所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
//****found****
voidproc(charstr,charch)
{
while(*str&&*str!=ch)str++;
//****found****
if(*str==ch)
{str[0]=ch;
//****found****
str[1]=0:
}
}
voidmain
{
charstr[81],ch;
system("CLS");
printf("\nPleaseenterastring:");
gets(str);
printf("\nPleaseenterthecharacterto
search:");
ch=getchar;
proc(str,ch);
printf("\nTheresultis%s\n",str);
}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}
参考答案
1.A本题中,fun函数第1次调用为fun(8,fun(5,6))。因为fun(5,6)的返回值为5,所以第2次调用为fun(8,5),即返回值为6。故本题答案为A选项。
2.D解析:D中的操作将会丢失r后面的链表结构,不能保持链表的连续。
3.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。
4.B(45)B)解析:算法应该具有下列五个特性:
①有穷性:一个算法必须在执行有穷步之后结束。
②确定性:算法中的每一步,必须有确切的含义,在他人理解时不会产生二义性。
③动态性:算法中描述的每一步操作都可以通过已有的基本操作执行有限次实现。
④输入:一个算法应该有零个或多个输入。
⑤输出:一个算法应该有一个或多个输出。这里所说的输出是指与输入有某种特定关系的量。
5.C
6.C
7.A函数中,形参必须是变量,实参可以是常量、变量或表达式,选项A错误,选项B正确;实参的个数和类型要与形参一致,选项C、D正确。本题答案为A选项。
8.B
9.B
10.A
11.A根据题意可知,小写字母比与之对应的大写字母的ASCII值大32。A选项中字符W加变量c再对字母个数26取余,不能转换为对应的小写字母。故本题答案为A选项。
12.B本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和;联合所占用内存空间是指最长的成员占用的空间。
13.B按逻辑位运算特点:①用按位与运算将特定位清为0或保留特定位;②用按位或运算将特定的位置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。
14.B
15.D
16.B
17.A选项A中,表达式“x%=k”结果为5,表达式“k%=5”结果为2,5-2结果为3;选项B中,“k%=5”结果为2,“x%=2”结果为0;选项C中,“k%5”结果为2,“k-k%5”结果为5,“x%5”结果为2;选项D中,“k%5”结果为2,“k-k%5”结果为5,x%5结果为2。故本题答案为A选项。
18.B
19.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。
20.B
\n本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。
\n
21.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。
22.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。
23.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。
24.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。
25.非0非0解析:逻辑运算中,非0表示逻辑“真”,用。表示逻辑“假”。
26.cdeabcdeab解析:本题move()函数的作用,是将形参s仕所指地址的连续n位循环右移1位,即让str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函数中用了一个for循环调用move()函数,共循环3次,所以数组s被循环右移了3位,故最后输出的值为cdeab。
27.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
28.aa解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。
29.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。
30.NULL或0EOF或-1NULL或0\r\nEOF或-1解析:如果fopen()函数调用不成功,则返回一个空指针值NULL(0);如果fclose()函数调用不成功,则返回EOF(-1)。所以本题的两个空应分别填NULL和EOF。
31.11371,13,7解析:本题考查3个知识点:①余数的计算,题中的a=10,b=3,a%b=1;②(表达式1,表达式2)形式的结果为最后一个表达式的值,题中的a=10,b=3,(a-b,a+b)=a+b=13;③条件运算符的使用,题中的a-b?a-b:a+b,判断语句a-b=7不为0,所以执行a-b,结果为7。
32.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。
33.软件开发
34.b=I+1b=I+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2后的和累加至a,所以a的值就是110之间的偶数之和;b的值是111之间的奇数和,但在输出b值时,c去掉多加的11,即为110之间的奇数之和。
35.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。
36.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。
37.45994599解析:要注意每条证语句后面是三条语句,而不是一条语句。执行第一条if语句时,条件表达式不成立,执行a=c;c=t;,此时a=5,c=99;执行第二条if语句时,条件表达式成立,执行t=b;b=a;a=t;交换a,b的值,输出结果为4,5和99。
38.64KB
39.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符“A”的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。
40.时间复杂度时间复杂度解析:算法在执行过程中所执行的基本运算的次数,也就是执行算法所需要的计算工作量,称为算法的时间复杂度。
41.D解析:“for(i=0;i<2;i++)p[i]=ch[i];”是将字符串'6937'和'8254'的首地址分别赋给指针数组p的两个元素。下面的for循环嵌套是取二维字符数组ch偶数列上的数字字符,将它们组成一个数。所以选项D符合题意。
42.D解析:选项A中,变量b、c未定义;选项B中,a、b未赋值;选项C中a、b、c均未定义。
43.B解析:选项A),在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式。
在判断选项B)时首先应该建立这杆的概念,整型变量中只能存放整型数,实型变量中能存放实型数,也能存放整型数。
选项C),执行表达式a=b后,将把变量b存储单元中的值赋给变量a,从而覆盖a中原有的值,但b中原有的值并不改变。
选项D),在C程序中,求余运算符“%”两边的类型均为整型数据。
44.C解析:用高级语言编写的程序称为“源程序”,而计算机只能识别和执行由O和1组成的二进指令,所以高级语言必须先用—种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。
45.D解析:将—个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
46.BB.【解析】栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元索是最后被插入的元素,也是最后被删除的元素。栈是按先进后出的原则组织数据的。
【知识拓展】“栈”的形式如手枪的弹匣,最后压入的子弹总是最先被弹出,而最先压人的子弹最后才被弹出,也就是“先进后出”。
47.B解析:本题中定义了一个二维数组b并初始化,定义了一个变量t并赋初值1。接着通过一个二重循环将若干个元素的值加到变量t中。循环的执行步骤是:外层循环变量i=0时,内层循环变量j=i,执行语句“t=t+b[i][b][j][j]]”,相当于t=t+b[0][b][0][0]],由于b[0][0]的值为0,得到t的值为1;依次类推,循环共执行了3次,最后输出t的值为4。所以,4个选项中B为所选。
48.C
49.C解析:整型常量可以用+进制、八进制和+六进制形式来表示。+进制基本常量用一串连续的数字来表示,八进制数用数字0开头,+六进制数用数字0和字母x或X开头,各个进制都需用各自合法的字符数字表示。选项A)中9是不合法的。选项B)+六进制数字应该用数字零和字母X(或x)开头,选项D)中G不合法。
50.C解析:C语言中函数的定义分为有参函数的定义和无参函数的定义。无参函数的定义形式为:
类型标识符函数名()
{说明部分
语句
}
有参函数的定义有两种形式:
类型标识符函数名(形式参数列表)
形式参数说明
{说明部分
语句
}
或
类型标识符函数名(类型名形参1,类型名形参2,…)
{说明部分
语句
}
其中函数名为用户定义的C语言的合法标识符,其前面的类型标识符用来说明函数值的类型,可以是C允许的任何类型,如int、char、float、double和指针类型等。当函数值为整型时类型标识符可以省略,如果函数没有返回值,类型标识符可以是void型。当函数的形参多于一个时,各个形参之间用逗号分隔。
51.D解析:由于只有4个元音字符,所以v1=4,v0和v2在循环11次中都要加1,共循环12次,由于v0的初值为1,所以v0=13,v2=12。
52.B解析:对于do…while循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次i的值“0,”,再接着判断表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值“1”。
53.Dfputc函数的一般调用形式为fputc(ch,fp),其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量,fp是文件指针变量。函数的作用是将字符(ch的值)输出到fp所指向的文件中。
fputc函数也返回一个值,如果输出成功,则返回值就是输出的字符;如果输出失败,则返回一个EOF(-1)。因此,本题的正确答案选D。
54.C解析:本题考查对数组的理解。C语言规定只能逐个引用数组元素,而不能一次引用整个数组。对于字符数组,可以将整个字符串一次输入或输出。所以,选项C)不正确。
55.D
56.D解析:形参在个数和类型上要与实参匹配,形参在未被调用之前,不占用存储单元。
57.D解析:类(calss)描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。
58.D解析:该程序先判断a[i]<a[p],如果条件为真,则a[i]比当前设定的最小值小(p保留的当前最小元素的下标),那么将i赋给p,即将比较过的最小元素下标保留在p中,作为下面判断的标准。
59.A解析:本题考查if表达式。if(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(==)误写为赋值号(=)时不会报错的,但是其值恒为1。
60.B
61.C数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项C中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。
62.C编译程序、操作系统、汇编程序都属于系统软件.只有教务管理系统才是应用软件.因此本题答案为C):
63.A
64.D解析:概要设计是软件系统结构的总体设计,其目的就是要按照需求规格说明书,把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系。而设计每个模块的伪代码则属于详细设计。所以只有最后一个不属于概要设计范畴。
65.C
66.Astrcat函数,gets函数;首先将输入的字符串赋给ss,然后将字符串“6789”连接到ss得后面
67.B本题主要考查运算符的优先级。在C语言中包含算术运算符、关系运算符和逻辑运算符等。这些运算符的优先级和结合方式在我们的教材《30天通过计算机等级考试:二级C语言》中可以查阅到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年环保公益宣传品采购与服务合同3篇
- 2024年版:建筑工程专业分包合同模板
- 简易警报器课程设计
- 工程经济学课程设计
- 航天能源课程设计思路
- 电工实训教学课程设计
- 《黑衣“超人”》课件
- 机械冲床课程设计题目
- 色彩搭配系统课程设计
- 米利根案件课程设计
- 传承传统文化教育教案(3篇模板)
- QBT 2460-1999 聚碳酸酯(PC)饮用水罐
- 2024新《公司法》修订重点解读课件
- 《电子吊秤校准规范》公示件
- 《跟上兔子》绘本四年级第1季Can-I-Play-with-You教学课件
- 手术室敏感指标构建
- 书法创作设计方案
- MOOC 软件工程概论-北京联合大学 中国大学慕课答案
- 2023年铁路工务安全规则正文
- 生态安全与环境风险评估预警机制
- MOOC 传热学-西安交通大学 中国大学慕课答案
评论
0/150
提交评论