版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年湖南省怀化市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列有关图的遍历说法中,不正确的是()
A.图的遍历必须用递归实现
B.基本遍历算法两种:深度遍历和广度遍历
C.有向图和无向图都可以进行遍历操作
D.图的遍历算法可以执行在有回路的图上
2.有以下程序:
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
3.以下程序的输出结果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.输出值不定
4.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
5.C语言中运算对象必须是整型的运算符是()。
A.%=B./C.=D.<=
6.有下列程序:程序执行后的输出结果是()。
A.3,7,8,9,10,6,5,4,2,1,
B.10,9,8,7,3,1,2,4,5,6,
C.10,9,8,7,6,1,2,3,4,5,
D.1,2,3,4,5,10,9,8,7,6,
7.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
8.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
9.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序运行所计算的是()。
A.1-1/2!+1/3!-1/5!+1/7!-…
B.1+1/3+1/5+1/7+1/9-…
C.1+1/2+1/3+1/4+1/5-…
D.1-1/3+1/5-1/7+1/9-…
10.以下叙述中错误的是()。
A.通过指针变量存取某个变量值的方式称为“直接存取”方式
B.在程序的开头包含头文件stdio.h后,可以给指针变量赋NULL值
C.将一个指针变量中的值赋给另一个指针变量,则这两个指针变量指向同一地址
D.C语言中函数返回值的类型可以是简单的数据类型,也可以是指针类型
11.以下不能对二维数组a进行正确初始化的语句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
12.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
13.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序运行后的输出结果是()。A.11B.21C.6D.120
14.有以下程序
#include<stdio.h>
intfun()
{staticintx=1;
x*2;returnx;
}
main()
{inti,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序运行后的输出结果是A.A.0B.1C.4D.8
15.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
16.
17.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式值为11的是()。
A.++p->xB.pt->xC.*pt->yD.(pt++)->x
18.有以下程序:程序运行后的输出结果是()。
A.10B.40C.32D.8
19.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。
A.s1的内容更新为abcdefghi
B.s1的内容更新为defghi\0
C.s1的内容更新勾defghiabc\0
D.s1的内容更新为abcdefghi\0
20.有以下程序:#include<stdio.h>intfun(){staticintx=1;X*=2:returnx;}main(){inti,S=1;for(i=1;i<=3;i++)S*=fun();printf("%d\n",s);}程序运行后的输出结果是()。A.0B.10C.30D.64
二、2.填空题(20题)21.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
22.下面程序的运行结果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
23.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
24.有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
25.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
26.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
27.单元测试又称模块测试,一般采用【】测试。
28.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#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);}
29.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
30.以下程序运行后的输出结果是______。
main()
{
charc1,c2;
for{c1='0',c2='9';c1<c2;c1++,C2--)
printf("%c%c",c1,c2);
printf("\n");
}
31.以下程序中函数huiwen.的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。
#include<string.h>
char*huiwen(char*str)
{char*p1,*P2;inti,t=0;
P1=str;p2=【】;
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(【】)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",【】);
}
32.以下程序将两个数从小到大输出。请填空。
{floata,b,【】;
scanf(,【】&a,&b);
if(a>b)
{t=a;
【】;
b=t;
printf("%5.2f%5.2f\n",a,b);
}
33.下列程序的输出结果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
34.下列程序的输出结果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
35.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
36.下列程序将二维数组a的行和列元素互换后存放到另一个二维数组b中。请填空。
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
37.下面程序调用fun函数动态分配两个整型存储单元,并通过形参传回这两个整型存储单元的地址给s1和s2,将程序补充完整。
┇
main()
{
int*s1,*s2;
┇
fun(【】);
┇
}
intfun(【】);
{
*p=(int*)malloc(sizeof(int));
*q=(int*)malloc(sizeof(int));
}
38.函数fun的返回值是【】。
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
39.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。
40.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是【】函数。
三、1.选择题(20题)41.设栈S的初始状态为空。元素a、b、c、d、e、f依次通过栈S,若出栈的顺序为b、d、c、f、e、a,则栈S的容量至少应该为()。
A.3B.4C.5D.6
42.链表不具有的特点是()
A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比
43.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
44.设a=5,bc6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>b)后n的值为______。
A.1B.2C.3D.4
45.对于下列定义,不正确的叙述是()。uniondata{inta;charb;doublec;}x=y;
A.变量x所占内存的长度等于成员c的长度
B.变量x的地址和它的各成员地址都是相同的
C.可以在定义时对x初始化
D.不能对变量x赋值,故x=y非法
46.在模块化程序设计中,按功能划分模块的原则是()。
A.各模块的功能尽量单一,且各模块之间的联系尽量少
B.各模块的功能尽量单一,且各模块之间的联系尽量紧密
C.各模块应包括尽量多的功能
D.各模块应包括尽量多的输入输出操作
47.不能把字符串"Hello!"赋给数组b的语句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
48.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}执行后输出结果是()。
A.产生语法错B.随机值C.AD.65
49.对以下说明语句的正确理解是inta[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组长度与初值的个数不相同,所以此语句不正确
50.办公自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于()
A.数据处理B.科学计算C.实时控制D.辅助设计
51.在结构化方法中,用数据流图(DFD)作为描述工具的软件开发阶段是()。
A.可行性分析B.需求分析C.详细设计D.程序编码
52.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
53.标准库函数fgets(s,n,file)的功能是()。
A.从文件file中读取长度为n的字符串存入字符数组s中
B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组s中
C.从文件file中读取n个字符串存入字符数组s中
D.从文件file中读取长度为n-1个字符的字符串存入字符数组s中
54.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
55.有以下程序#defineP3voidF(intx){return(p'x'x);main(){pritnf("%d\n",F(3+5));}程序运行后的输出结果是
A.192B.29C.25D.编译出错
56.有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abe后,y的值为
A.55566.0B.566.0C.7777.0D.566777.0
57.下列程序执行后的输出结果是
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{inti=0;func1(i);printf("\n");}
A.helloB.helC.hloD.m
58.若输入12345、abc,程序的输出结果为______。main(){inta;charch;scanf("%3d,%3c",&a,&ch);printf("%d,%c",a,ch);}
A.123,abcB.123,4C.123,aD.12345,abc
59.下列叙述中正确的是()。
A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用
60.按照“后进先出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
四、选择题(20题)61.有以下程序程序的运行结果是()。
A.20B.10C.0D.出错
62.
63.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
64.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
65.
66.
67.(64)在单链表中,增加头结点的目的是()
A.方便运算的实现
B.使单链表至少有一个结点
C.标识表结点中首结点的位置
D.说明单链表是线性表的链式存储实现
68.以下程序的输出结果是
#include<stdio.h>
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A.6,1B.6,0
C.2,1D.2,0
69.有以下程序段
structSTU
{charnum[10];floatscore[3];};
main()
{
structSTUs[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
inti;floatsum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是
A.260.00B.270.00
C.280.00D.285.00
70.
71.有以下程序:
程序运行后的输出结果是()。
72.
73.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
74.
75.
76.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
77.
78.
79.以下定义语句中正确的是()。
A.inta=b=0;
B.charA=65+1,b=’b’;
C.floata=1,*b=*a,*C=&b;
D.doublea=0.0;b=1.1;
80.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量num1中的值原为2,num2中的值原为1,程序运行后,num1中的值为l,num2中的值为2。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是将放在字符串数组中的M个字符串(每个字符串的长度不超过N),按顺序合并成一个新的字符串。例如,若字符串数组中的M个字符串为|“AAAA”,“BBBBBBB”,“CC”|,则合并后的字符串内容应该是“AAAABBBBBBBCC”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidfun(chara[M][N],char*b){}voidmain(){ charw[M][N]={“AAAA”,“BBBBBBB”,“CC”}; chara[100]={“##################”}; inti; printf(“Thestring:\n”); for(i=0;i<=""p=""> puts(w[i]); printf(“\n”); fun(w,a); printf(“TheAstring:\n”); printf(“%s”,a); printf(“\n\n”);}
参考答案
1.A
2.C即输出x[0][2]x[l][1]x[2][0]分别为357。
3.A解析:对未给出初始值的整数数组元素,被默认初始化为零。
4.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
5.A解析:C++语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算对象也必须是整型。
6.B程序中函数fun的功能是将数组a的n个元素,按照flag的值进行排序:当flag为0时,升序排列;当flag为1时,降序排列。main函数中定义数组c,初始化10个元素的值。第1次调用函数fun,\nflag为1,即将c的下标为0开始的5个元素降序排列。第2次调用函数fun\n,flag为0,将c的下标为5开始的5个元素升序排列。所以输出数组e的元素为10,9,8,7,3,1,2,4,5,6。本题答案为B选项。
7.C
8.D解析:C语言规定,字符常量在程序中要用单引号括起来。判断c1是否为小写字母的充要条件c1>='a'和c1<='z',用逻辑与(&&)来表示。A选项的这种形式在C语言中没有,所以选项D)正确.
9.Dmain函数首先定义整型变量S,初值为1;定义float类型的n、t、Pai,其中n初值为1.0,t初值为1,pai初值为0。while循环判断t的绝对值(fabs为求float类型值的绝对值的函数)是否大于1.0×10-6,若t的绝对值大于1.0×10-6,那么,执行语句“pai+=t;n+=2;s=-s;t=s/n;”,所以每轮循环pai累加“s/n”(其中s是上一轮s的相反数,n是上一轮n累加2的值)。第1轮循环时,pai被赋值为1,s是正数,所以最终pai的计算结果是:1-1/3+1/5-1/7+1/9-…。故本题答案为D选项。
10.A通过指针变量存取某个变量值的方式称为“间接存取”方式,选项A错误;头文件stdio.h中定义了NULL,在程序的开头包含stdio.h后,可以给指针变量赋NULL值,表示一个空指针,选项B正确;将一个指针变量中的值赋给另一个指针变量,这两个指针变量指向同一地址,选项C正确;C语言中函数返回值的类型可以是简单的数据类型,也可以是指针类型,选项D正确。故本题答案为A选项。
11.C解析:关于二维数组的初始化,我们需要掌握如下方法:①所赋初值个数与数组元素的个数相同;②所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;③在给二维数组赋初值时可以不用行花括号对。选项C)应该是inta[3][2]={{1,2},{3,4},{5,6,}};
12.A本题中,首先创建一个动态内存,然后将地址分别存入指针a、b、c中,即a、b、c都指向相同.的变量。分别给a、b、c所指的变量赋值,最终a、b、c所指的变量中的值为3,最后打印a、b、c所指的变量
13.B本题考查静态变量,C语言中静态变量的生存期是从程序的开始到结束。本题中静态变量x,随着每次进入循环不断增长5次,返回的值分别为2、3、4、5、6。所以S=1+2+3+4+5+6=21,选B。
14.C
15.D
\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。
\n
16.A
17.A题目中定义了一个结构体数组c并初始化,指针pt指向c的第1个元素。则“++pt->x”为11,“pt->x”为10,“*pt->y”为1,“(pt++)->x”为20。故本题答案为A选项。
18.D整型变量ch使用八进制数020初始化,二进制数为10000,右移一位结果为1000,使用%d输出十进制数为8。本题答案为D选项。
19.Dstrcat(s1,s2)函数的功能是把s2字符串连接到s1字符串的末尾,要保证s1有足够的空间容纳下连接后的字符串。
20.D函数fun是2的次方的运算,而s*=fun,所以答案为64。
21.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
22.8080解析:数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。
23.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
24.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本题主要考查了插入排序。由于程序中的数组在开始己经按从小到大顺序排序排好。在插入时,首先要查到第一个大于恃插入数的数组下标,即当待插入元素小于数组中当前元素时,记下数组的当前下标p,并结束循环,故第一空目的是为了记下数组下标,应填p=i;插入排序的第二部是将大于待插入元素的所有元素都向后移动—位,故在循环时,要从最后一个元素到第p个元素都要后移一位,因此第二空应填>i=p。最后一个循环是将N+1个元素都输出,故最后一空应为i<=N。(注:本题有多种答案,以上仅提供一种)
25.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
26.i+1i
27.白盒法白盒法
28.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。
29.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。
30.918273645918273645解析:题目中为for循环定义了两个字符型循环变量c1和c2,循环开始时分别初始化为字符'0'和'9',然后每次循环结束给c1增1、c2减1,循环条件为c1<c2,即让c1的值依次为'0'、'1'、'2'…,c2的值依次为'9'、'8'、'7'…,直到两个数相遇时结束循环。又因为该循环的循环体每次按字符形式输出c1和c2的值.所以最终的输出结果为:0918273645。
31.str+strlen(str)-1i>strlen(str)/2huiwen(str)str+strlen(str)-1\r\ni>strlen(str)/2\r\nhuiwen(str)解析:首先使指针p1指向字符串的首地址,指针p2指向字符串的尾地址(不包括字符串结束标记'\\0'),然后指针p1从前往后,指针p2从后往前,直到移至字符串的中间元素,若两者所指的元素不相等,则跳出循环,此时i<=strlen(str)/2,若两者所指的元素均相等,则此时i>strlen(str)/2。
通过if语句判断,如果i>strlen(str)/2,则返回“yes!”,否则返回“no!”。
主函数中要求输出函数huiwen(str)的返回值。
32.t"%f%f"a=b
33.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i:3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1执行第三次for循环时,i=5,讧语句条件满足,所以执行printf('%d\\n',i)输出5,然后break语句跳出了for循环。
34.21
35.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。
36.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本题考查二维数组的基本知识。它是要将一个二维数组,的行和列元素互换后存放到另一个二维数组b中,只要将数组a的行标和列标互换,然后赋给数组b即可。
37.&s1&s2
38.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。
39.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。
40.rewind()或fseek()rewind()或fseek()
41.A解析:根据题中给定的条件,可以作如下的模拟操作:①元素a,b进栈,栈中有2个元素,分别为a,b;②元素b出栈后,元素c,d进栈,栈中有3个元素,分别为a,c,d;③元素d,c出栈后,元素e,f进栈,栈中有3个元素,分别为a,e,f;④最后,元素f,e,a出栈,栈为空。可以看出,进栈的顺序为a,b,c,d,e,f,出栈的顺序为b,d,c,f,e,a,满足题目要求。每次进栈操作后,栈中最多有3个元素,所以,为了顺利完成这些操作,栈的容量应至少为3。本题的正确答案为A。
42.B解析:链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处:①每个结点中的指针域需额外占用存储空间;②链式存储结构是一种非随机存储结构。
43.D解析:C语言规定,字符常量在程序中要用单引号括起来。判断c1是否为小写字母的充要条件c1>='a'和c1<='z',用逻辑与(&&)来表示。A选项的这种形式在C语言中没有,所以选项D)正确.
44.B解析:m=a>b的值为逻辑值0,n=c>b不被执行,n的值仍为2。
45.C解析:本题主要考查的知识点是联合体的内存使用。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量全部是从低地址方向开始使用内存单元。不能在定义共用体变量时对它初始化。
46.A解析:模块化设计是指把一个大程序按人们能理解的大小规模进行分解。划分模块的基本原则是使每个模块都易于理解。按照人类思维的特点,按功能来划分模块最为自然。在按功能划分模块时,要求各模块的功能尽量单一,各模块之间的联系尽量少。所以选项B错误;选项C错误;选项D错误。
47.B解析:在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。
48.C解析:在定义共用体的同时,定义了—个共用体型变量u1,共占两个字节,有两个成员n和c,两个成员的首地址是相同的。因此给u1.c赋一个“A”,其实就是给无符号整型成员u1.n的低字节赋一个“A”,输出u1.n的时候是以字符型的形式输出,只输出它的低地址的一个字节,因此为“A”。所以,C选项为所选。
49.B解析:本题中,表达式将5个初值分别赋给a[0]至a[4],系统自动给后面的元素a[5]至a[9]赋0。
50.A
51.B解析:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。
52.B解析:从工程管理解度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
53.B解析:字符串输入函数fgets()的调用形式为:fgets(s,n,fp)。fgets函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件的文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组s中;读入字符串后会自动在字符串末尾加入“'\\0'”结束符,表示字符串结束。
54.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。
55.D解析:本题考查的是函数的定义。C语言中有两种函欺,一种是没有返回值的函数,这种函数的返回值类型是void;另一种是有返回值的函数,其返回值类型是void以外的任何类型。void类型函数不能返回值,否则编译通不过。本题是一道陷阱题,考生如果没注意到F()函数被定义为void类型的话,很容易错选为选项A,其实应该选择选项D,编译出错!
56.B解析:本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为“%2d”,即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。
57.C解析:考查函数的调用。函数调用的一般形式为:
函数名(实参列表)
首先调用函数func1(0),输出st[0]=h。i值变为2,并调用函数func2(2),输出st[2]=l。i值此时变为4,又调用函数func1(4),输出st[4]=0。此时i值大于等于3,执行完毕,因此,输出结果为hlo。函数调用的一般格式以及函数的返回值。
58.B解析:指定输入数据所占列数之后,系统自动按它截取所需数据,无须分界符。程序中指定整型变量a占3列,输入12345、abc后,系统自动将数据前3列123赋给变量a,而剩余的数据则根据具体情况赋给其他变量或作为多余数据处理。因程序中还需对字符变量ch输入数据,虽然指定输入3列字符,但字符型数据只能有一个字符,因此把剩余的“45、abc”中第1个数据4赋给变量ch,故正确答案为选项B。
59.D解析:C语言相对其他高级语言来说,放宽了语法检查,因此程序设计自由度大,但并不是不检查语法,C语言的程序是由函数构成的。函数不能嵌套定义,但是可以嵌套调用。
60.B解析:“后进先出”表示最后被插入的元素最先能被删除。选项A中,队列是指允许在—端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则:选项B中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。队列和栈都届于线性表,它们具有顺序存储的特点,所以才有“先进先出”和“后进先出”的数据组织方式。双向链表使用链式存储方式,二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。所以选项C和选项D错误。本题的正确答案为选项B。
61.Amalloc(sizeof(int))的作用是开辟一个长度为sizeofl:int)的存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量P。然后执行语句*p=n,使得*p的值为10,并通过ieturn返回此值,ePa的值为l0。然后在主函数中输出a+fun(10)=10+10=20。故本题答案为A)。
62.C
63.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。
64.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
65.B
66.C
67.A
68.C第一个表达式中,运算的方向是从左至右,所以a的值为2;第二个表达式中,等式右边是一个逻辑表达式,由于结果为真,所以表达式的值为1,即b为1。
69.B在本题中,程序首先定义一个结构体,结构体中含有两个结构体成员,两个结构体成员都是数组。
在主函数中,首先定义了一个大小为3的该结构体数组s,并对其进行初始化操作,然后定义了一个该结构体类型的指针变量p,使其指向结构体数组s,接着定义两个变量,整型变量i作为循环变量,浮点型变量sum用来保存和计算结果。然后执行for循环。
当循环变量i=0时,执行sum=sum+p->score[i];语句,p->score[0]表示结构体数组中第一个结构体变量的score[0]值,即90,本次循环结束后,sum的值为90。
当循环变量i=1时,同理,求得sum=90+95=185。
当循环变量i=2时,求得sum=185+85=270。
然后循环结束,用格式%6.2f对sum进行输出操作,这个输出格式的意思是输出数据的宽带为6且要输出两位小数位,那么输出的结果为270.00。因此,本题的正确答案是B。
70.A
71.A外循环第一次i的值为1,内循环第一次j的初值为l,打印1*1=1;内循环第二次j的值为2,打印1$2=2;内循环第三次J的值为3,打印1}3=3,打印回车换行,退出内循环。外循环第二次i的值为2,内循环第一次j的初值为2,打印2*2=4;内循环第二次j的值为3,打印2。3=6,打印回车换行,退出内循环。外循环第三次i的值为3,内循环第一次j的初值为3,打印3*3=9,打印回车换行,退出内循环。
72.D
73.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:
(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。
(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。
(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。
(4)++和--运算符的结合方向是“自右向左”。
(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。
74.D
75.A
76.C本题主要考查数组的定义及初始化。在对数组进行定义和初始化时,需要注意以下事项。
(1)数组的内存空间在编译时确定,定义数组时的n值只能使用常量,不能使用变量。
(2)定义数组时可以不标明数组元素的个数,而是通过赋初值的方式确定,编译系统将自动计算花括号内的数据数量作为数组的元素个数。
(3)数组初始化时,当初值的个数小于整型常量n时,编译系统会自动补0。一旦给定初值数超过n,编译系统将报错。
(4)初始化数组的元素类型,必须与定义数组时的类型一致。
(5)数组名记录了数组在内存中的首地址,其值不能更改。
(6)除字符数组外,不能直接用数组名对数组进行整体输入或输出。
本题中定义了一个3行4列的数组,但没有对其进行赋初值操作,可能我们会想在系统编译时会自动补0,这只是在初值个数小于数组定义大小的情况下的操作,如果没有进行赋初值操作,数组中的元素值是不能被确定的。因此,本题答案选C。
77.A
78.B
79.BA选项语句中b变量还没有定义不能直接用于给a变量赋值。c选项语句中·b、-c表示的是一个实句中a=0.0后面应该为逗号,不能是分号。
80.C注:这一共同点和线性表不一样
81.(1)错误:t=x;x=y;
正确:t=*x;*x=y;
(2)错误:return(y);
正确:return(t);
【解析】由函数proc()可知,变量x为整型指针,而变量t为整型变量.不能直接赋值。因此,“t=x;x=y;”应改为“t=*x;*x=y;”。题目要求实现两个数的交换,因此函数proc()应返回变量X的值,变量x的值存放在变量t中。因此,“return(y);”应改为“return(t);”。
82.voidfun(chara[M][N],char*b){ inti,j,k=0; for(i=0;i /*将字符串数组中的M个字符串,按顺序存入一个新的字符串*/ for(j=0;a[i][j]!='V),;j++) b[k++]=a[i][j]; b[k]=‘\0’; /*在字符串最后加上字符串结束标志*/}该题考核的是字符串连接操作。字符串数组相当于二维字符数组。字符数组a是M行N列的二维数组。通过两层for循环遍历数组a,将数组a中的元素保存到数组b中。在数组b的最后一个元素后添加字符串结束标志‘\\0’。2022-2023年湖南省怀化市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列有关图的遍历说法中,不正确的是()
A.图的遍历必须用递归实现
B.基本遍历算法两种:深度遍历和广度遍历
C.有向图和无向图都可以进行遍历操作
D.图的遍历算法可以执行在有回路的图上
2.有以下程序:
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
3.以下程序的输出结果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.输出值不定
4.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+1D.2n
5.C语言中运算对象必须是整型的运算符是()。
A.%=B./C.=D.<=
6.有下列程序:程序执行后的输出结果是()。
A.3,7,8,9,10,6,5,4,2,1,
B.10,9,8,7,3,1,2,4,5,6,
C.10,9,8,7,6,1,2,3,4,5,
D.1,2,3,4,5,10,9,8,7,6,
7.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)
8.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
9.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序运行所计算的是()。
A.1-1/2!+1/3!-1/5!+1/7!-…
B.1+1/3+1/5+1/7+1/9-…
C.1+1/2+1/3+1/4+1/5-…
D.1-1/3+1/5-1/7+1/9-…
10.以下叙述中错误的是()。
A.通过指针变量存取某个变量值的方式称为“直接存取”方式
B.在程序的开头包含头文件stdio.h后,可以给指针变量赋NULL值
C.将一个指针变量中的值赋给另一个指针变量,则这两个指针变量指向同一地址
D.C语言中函数返回值的类型可以是简单的数据类型,也可以是指针类型
11.以下不能对二维数组a进行正确初始化的语句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
12.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
13.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序运行后的输出结果是()。A.11B.21C.6D.120
14.有以下程序
#include<stdio.h>
intfun()
{staticintx=1;
x*2;returnx;
}
main()
{inti,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序运行后的输出结果是A.A.0B.1C.4D.8
15.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
16.
17.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式值为11的是()。
A.++p->xB.pt->xC.*pt->yD.(pt++)->x
18.有以下程序:程序运行后的输出结果是()。
A.10B.40C.32D.8
19.若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。
A.s1的内容更新为abcdefghi
B.s1的内容更新为defghi\0
C.s1的内容更新勾defghiabc\0
D.s1的内容更新为abcdefghi\0
20.有以下程序:#include<stdio.h>intfun(){staticintx=1;X*=2:returnx;}main(){inti,S=1;for(i=1;i<=3;i++)S*=fun();printf("%d\n",s);}程序运行后的输出结果是()。A.0B.10C.30D.64
二、2.填空题(20题)21.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
22.下面程序的运行结果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
23.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
24.有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
25.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。
26.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。
#include<stdio.h>
#defineN10
invert(s,i,j)
int*s,i,j;
{intt;
if(i<j)
{t=*(s+i);
*(s+i)=(s+j);
*(s+j)=t;
invert(s,【】,j-1);
}
}
main()
{
inta[N],i;
for(i=0;i<N;i++)scanf("%d",a+【】);
invert(a,0,N-1);
for(i=0,i<N;i++)printf("%d",a[i]);
printf("\n")
}
27.单元测试又称模块测试,一般采用【】测试。
28.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#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);}
29.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
30.以下程序运行后的输出结果是______。
main()
{
charc1,c2;
for{c1='0',c2='9';c1<c2;c1++,C2--)
printf("%c%c",c1,c2);
printf("\n");
}
31.以下程序中函数huiwen.的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。
#include<string.h>
char*huiwen(char*str)
{char*p1,*P2;inti,t=0;
P1=str;p2=【】;
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(【】)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",【】);
}
32.以下程序将两个数从小到大输出。请填空。
{floata,b,【】;
scanf(,【】&a,&b);
if(a>b)
{t=a;
【】;
b=t;
printf("%5.2f%5.2f\n",a,b);
}
33.下列程序的输出结果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
34.下列程序的输出结果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
35.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
36.下列程序将二维数组a的行和列元素互换后存放到另一个二维数组b中。请填空。
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
37.下面程序调用fun函数动态分配两个整型存储单元,并通过形参传回这两个整型存储单元的地址给s1和s2,将程序补充完整。
┇
main()
{
int*s1,*s2;
┇
fun(【】);
┇
}
intfun(【】);
{
*p=(int*)malloc(sizeof(int));
*q=(int*)malloc(sizeof(int));
}
38.函数fun的返回值是【】。
fun(char*a,char*b)
{intnum=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n]){*(a+num)=b[n];num++;n++;}
returnnum;
}
39.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。
40.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是【】函数。
三、1.选择题(20题)41.设栈S的初始状态为空。元素a、b、c、d、e、f依次通过栈S,若出栈的顺序为b、d、c、f、e、a,则栈S的容量至少应该为()。
A.3B.4C.5D.6
42.链表不具有的特点是()
A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比
43.判断char型变量c1是否为小写字母的正确表达式为()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
44.设a=5,bc6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>b)后n的值为______。
A.1B.2C.3D.4
45.对于下列定义,不正确的叙述是()。uniondata{inta;charb;doublec;}x=y;
A.变量x所占内存的长度等于成员c的长度
B.变量x的地址和它的各成员地址都是相同的
C.可以在定义时对x初始化
D.不能对变量x赋值,故x=y非法
46.在模块化程序设计中,按功能划分模块的原则是()。
A.各模块的功能尽量单一,且各模块之间的联系尽量少
B.各模块的功能尽量单一,且各模块之间的联系尽量紧密
C.各模块应包括尽量多的功能
D.各模块应包括尽量多的输入输出操作
47.不能把字符串"Hello!"赋给数组b的语句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
48.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}执行后输出结果是()。
A.产生语法错B.随机值C.AD.65
49.对以下说明语句的正确理解是inta[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组长度与初值的个数不相同,所以此语句不正确
50.办公自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于()
A.数据处理B.科学计算C.实时控制D.辅助设计
51.在结构化方法中,用数据流图(DFD)作为描述工具的软件开发阶段是()。
A.可行性分析B.需求分析C.详细设计D.程序编码
52.在软件开发过程中,软件结构设计是描述______。
A.数据存储结构B.软件体系结构C.软件结构测试D.软件控制过程
53.标准库函数fgets(s,n,file)的功能是()。
A.从文件file中读取长度为n的字符串存入字符数组s中
B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组s中
C.从文件file中读取n个字符串存入字符数组s中
D.从文件file中读取长度为n-1个字符的字符串存入字符数组s中
54.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
55.有以下程序#defineP3voidF(intx){return(p'x'x);main(){pritnf("%d\n",F(3+5));}程序运行后的输出结果是
A.192B.29C.25D.编译出错
56.有以下程序段
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abe后,y的值为
A.55566.0B.566.0C.7777.0D.566777.0
57.下列程序执行后的输出结果是
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{inti=0;func1(i);printf("\n");}
A.helloB.helC.hloD.m
58.若输入12345、abc,程序的输出结果为______。main(){inta;charch;scanf("%3d,%3c",&a,&ch);printf("%d,%c",a,ch);}
A.123,abcB.123,4C.123,aD.12345,abc
59.下列叙述中正确的是()。
A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用
60.按照“后进先出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
四、选择题(20题)61.有以下程序程序的运行结果是()。
A.20B.10C.0D.出错
62.
63.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
64.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年阜阳太和县中鑫嘉和高级中学教师招聘52名笔试备考题库及答案解析
- 2026年春季小学音乐接力版一年级下册教学计划含进度表
- 4.7.3用药与急救教学设计-2025-2026学年人教版2024八年级上册生物
- 2026江西新余市投资控股集团有限公司招聘2人笔试备考试题及答案解析
- 2026重庆市璧山区人民政府大路街道办事招聘非编聘用人员4人笔试备考题库及答案解析
- 2026黑龙江牡丹江宁安市社保中心招聘公益性岗位人员的4人笔试备考题库及答案解析
- 2026广西来宾市鑫牧源商贸有限公司招聘5人笔试备考题库及答案解析
- 2026湖南郴州市工伤保险服务中心招募见习生2人笔试备考试题及答案解析
- 2026河南安阳林州市第一实验幼儿园招聘4人笔试备考题库及答案解析
- 2026福建泉州石狮华侨中学春季招聘合同制教师2人(二)笔试备考试题及答案解析
- 肠吻合口狭窄的护理查房
- 特色小镇运营合同范本
- 大中型建筑公司管理制度汇编
- T/BIKE 7.1-2020电动自行车锂离子蓄电池换电柜技术要求第1部分:柜体
- 腕表买卖合同协议
- 2025届河南省郑州市高三下学期第二次质量预测英语试题(原卷版+解析版)
- 2025年安阳职业技术学院单招职业适应性测试题库学生专用
- 《逃不开的经济周期》拉斯·特维德
- 「完整优质版」基金业协会备案的合伙协议范本
- 中国石油大学考博英语历年考博真题15-21年带解析
- 课件参考文稿1.4safety-2015v
评论
0/150
提交评论