![2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8621.gif)
![2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8622.gif)
![2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8623.gif)
![2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8624.gif)
![2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页](http://file4.renrendoc.com/view/966fad26cc14193300f1f98a6441f862/966fad26cc14193300f1f98a6441f8625.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列关于标识符的说法中错误的是
A.合法的标识符是由字母、数字和下划线组成
B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D.用户标识符与关键字不同时,程序在执行时将给出出错信息
2.
3.算法的时间复杂度是指A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数
4.
5.
6.语句int(*ptr)的含义是()。
A.ptr是一个返回值为int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
7.fscanf函数的正确调用形式是()
A.fscanf(fp,格式字符串,输出表列);
B.fscanf(格式字符串,输出表列,fp);
C.fscanf(格式字符串,文件指针,输出表列),
D.fscanf(文件指针,格式字符串,输入表列);
8.软件生命周期中,花费最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
9.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
10.若有定义“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要将它们连接成新串“personnameaddress”,正确的函数调用语句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
11.
12.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0
13.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序运行后的输出结果是()。A.ZhangB.ZhaoC.WangD.19
14.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。
A.视图B.消息C.数据D.关系
15.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
16.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入l0,程序的输出结果是()。
A.55
B.54
C.65
D.45
17.下列给字符数组初始化中,()是正确的。
A.chars2[3]="xyz";
B.chars1[]="abcd";
C.chars3[][3]={'a','x','y'};
D.chars4[2][3]={"xyz","mnp"};
18.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)
19.若函数中有定义语句:inta;,则()。
A.系统将自动给a赋初值为0B.系统将自动给a赋初值一lC.这时a中的值无意义D.这时a中无任何值
20.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。A.741B.963C.852D.875421
二、2.填空题(20题)21.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
22.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
23.以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
24.无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。
25.以下程序的功能是将宁符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf4568h,执行程序后输出:123456。请填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
26.要使以下程序段输出10个整数,请填入一个整数;
for(i=0;i<=【】;printf("%d\n",i+=2));
27.对二叉排序树进行查找的方法是:用待查的值与根结点的值相比,若比根小,则继续在【】子树中找。
28.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后的输出结果是【】。
29.若输入字符串:abcde↓,则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
30.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
31.下面程序由两个源程序文件:t4.h和t4.c组成,程序编译运行的结果是:【】。
t4.h的源程序为:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序为:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
32.把数学表达式改写成C语言的表达式是【】。
33.在关系数据库中把数据表示成二维表,每一个二维表称为【】。
34.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。
35.表示“整数x的平方大于36"时的值为“真”的C语言逻辑表达式是【】。
36.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。
37.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
38.表示""整数x的绝对值大于5""时值为""真""的C语言表达式是【】。
39.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
40.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
三、1.选择题(20题)41.现有格式化输入语句,
A.intB.floatC.doubleD.不确定
42.下列关于标识符的说法中错误的是
A.合法的标识符是由字母、数字和下划线组成
B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D.用户标识符与关键字不同时,程序在执行时将给出出错信息
43.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
44.以下数据结构中属于线性数据结构的是
A.集合B.线性表C.二叉树D.图
45.下列程序执行后输出结果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}
A.you&meB.youC.meD.err
46.在下列定义中的共用体所占内存字节数是()。union{chark[6];struct{intm;floarf;}a;doubled;}b;
A.8B.14C.18D.10
47.下列叙述中正确的是______。
A.C程序中注释部分可以出现在程序中任何合适的地方
B.花括号""{""和""}""只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的—部分
48.下列写法正确的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
49.关于if后一对圆括号中的表达式,以下叙述中正确的是()
A.只能用逻辑表达式B.只能用关系表达式C.既可用逻辑表达式也可用关系表达式D.可用任意表达式
50.一个良好的算法由下面的基本结构组成,但不包括______。
A.顺序结构B.选择结构C.循环结构D.跳转结构
51.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
52.若一个名部变量的定义形式为staticintx;,那么,其中static的作用应该是______。
A.将变量存储在静态存储区B.使变量X可以由系统自动初始化C.使x只能在本文件内引用D.使x的值可以永久保留
53.若有定义inta[9],*p=a;则p+5表示
A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5
54.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
55.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
56.以下对C语言函数的有关描述中,正确的是
A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
57.以下程序的运行结果为______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}
A.1123581321
B.1122551010
C.1258981321
D.0112451521
58.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
59.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
60.以下对枚举类型名的定义中正确的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
四、选择题(20题)61.有以下程序
62.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0
63.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图内容的是
A.控制流B.加工C.数据存储D.数据流
64.常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
65.有以下程序:
程序运行后的输出结果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
66.有以下程序:
程序运行后的输出结果是()。
A.3B.1C.2D.0
67.
68.软件(程序)调试的任务是()。
A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质
69.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。
70.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~
71.下列关于栈的叙述中正确的是()。
A.在栈中只能插入数据,不能删除数据
B.在栈中只能删除数据,不能插入数据
C.栈是先进后出(FILO.的线性表
D.栈是先进先出(FIFO.的线性表
72.
73.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
74.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
75.有以下程序:
#include<stdio.h>
main()
{intX=011;
printf("%d\n",++x);
}
程序运行后的输出结果是()。
A.12B.11C.10D.9
76.下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.以上说法都不正确
77.
78.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
79.若有说明:inti,j=7,*p=&i;,则与i=j;等价的语句是()。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
80.有两个关系R、S如下:
由关系R通过运算得到关系s,则所使用的运算为()。
A.选择B.投影C.插入D.连接
五、程序改错题(1题)81.写出下列程序的运行结果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为13579299946999813570则函数值为61。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
参考答案
1.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。注意:合法的标识符第一个字符必须为字母或下划线。
2.A
3.DD。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模。09函数fin),算法的时间复杂度也因此记做T(n)=O(f(n))。因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeComplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。
4.A
5.D
6.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。
7.D
8.D本题考查对软件生命周期的理解,软件生命周期整体上可分为定义阶段、开发阶段和维护阶段。其中定义阶段包括可行性研究与计划制订和需求分析;开发阶段包括概要设计、详细设计、开发和测试;维护阶段是一个单独阶段,不包含在开发阶段内,它是所花费用最多的一个阶段。
9.Awhile循环的执行过程如下:①计算while后面圆括号中表达式的值。当值为非0时,执行步骤②;当值为0时,执行步骤④。②执行循环体一次。③转去执行步骤①。④退出循环。在选项A中,表达式(ch=get-char)!=N表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选项A为正确答案。
10.Bstrcat函数是字符串连接函数,调用形式为strcat(s1,s2)。其功能是将s2指向的字符串的内容连接到s1指向的存储空间中,并返回s1的地址。由题意可知,新串首地址为s3,所以s3应该是第一参数,选项A、D错误。同理,新串中除了S3所指的字符串,剩下的字符串为“nameaddress”,即首地址为s1,所以调用strcat函数,s1是第一参数。所以正确的函数调用语句为“strcat(s3,strcat(s1,s2))”。故本题答案为B选项。
11.D
12.B变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。
13.Bfun(x+2)表示的是结构体数组中的第3个元素即{03,"Zhao",l8),而输出的是name元素,所以答案为B。
14.C解析:数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系-故答案为C。
15.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。
16.A\n本题在函数intfun(intn)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量X时,递归调用的过程为
\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)
\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)
\n=10+9++8+7+6+5+fun(4)
\n=10+9++8+7+6+5+4+fun(3)
\n=10+9++8+7+6+5+4+3+fun(2)
\n=10+9++8+7+6+5+4+3+2+fun(1)
\n=10+9++8+7+6+5+4+3+2=55
\n
17.A
18.A
19.C用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中放任何值,此时变量中的值是无确定的,称变量值”无意义”。因此,本题正确答案为c。
20.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式--Y的值。Y先自减l,然后再输出y的值。
21.b=14b=14解析:分析程序可知,n的初始值为1,因此,while(n<=3)循环3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。当n=4时,判断条件不满足,退出循环。
22.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。
23.&P(n)或p+n&P(n)或p+n解析:因为n被初始化为0、p被初始化指向str所指字符串的首地址,所以while循环的功能是从str所指字符串的第1个字符开始比较,若等于c或等于字符串结束符'\\0'就跳出循环。故循环结束后,若p[n]为'\\0',则证明str所指字符串不包含c中的字符,应该返回NULL,否则应该返回p[n]的地址值。返回NULL在第2条if语句中已经实现,所以我们应该填入的表达式为p[n]的地址值,即&p[n]或p+n。
24.O(2)
25.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或\'9\'>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:本题中,chars[80],d[80];定义了两个字符型数组,可以放入80个字符。gets函数是C语言提供的一个专门用于读字符串的函数,它读入全部字符(包括空格),直到遇到回车为止。本题中,读入字符串s后,开始比较s中的每个字符是否为数字字符,因为字符数据在内存中以相应的ASCII码存放,所以只需比较相应的ASCII码值是否在48(\'0\'的ASCII代码)与57(\'9\'的ASCII代码)之间,或者直接与\'0\',\'9\'进行比较,如果是数字字符则将此字符存入d数组中,不是则继续进行下一字符的比较,直至s结束(即\'\\0\'的出现)。将'\\0'字符作为字符串d结束标志,最后调用puts函数输出d。所以在空格处应填入比较语句s[i]>=\'0\'&&s[i]<=\'9\'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<=\'9\'&&s[i]>=\'0\'或9\'>>=s[i]&&\'0\'<=s[i]或\'0\'<=s[i]&&\'9\'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]。
26.18或1918或19
27.左左解析:对二叉排序树进行查找,若待查的值与根结点的值相比,若比根小,则继续在左子树中找;若比根大,则在右子树中找。
28.5858解析:for循环语句中continue语句的作用是当数组元素值小于0时,结束本次j循环,break语句的作用是当数组元素值等于0时,结束j循环,所以for循环语句的功能是计算数组元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。
29.00解析:函数getchar()是从键盘得到用户输入的一个字符。用户输入的第1个字符是a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。
30.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
31.16111611解析:题目中第1条要替换的语句i=f(1+1);展开后是i=((1+1)*M);继续展开为i((1+1*8),结果使i=16。而第2条语句j=f2(1+1)”;展开后为j=(1+1*N);继续展开为j=(1+1*10),结果使j=11。故程序运行的结果是输出1611。
32.(cosx)*(cosx)*(m+n)/(m-n)
33.关系或一个关系关系或一个关系解析:在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。
34.数据结构数据结构
35.x<-6||x>6
36.软件工程学软件工程学
37.q<p+nq<p+n解析:通过地址传递可以在被调函数中对调用函数中的变量进行引用。
38.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整数x的绝对值大于5,则x大于5或x小于5,用C语言表示即为:x>5||x<-5或者x<-5||x>5。故本题答案为;x>5||x<-5或者x<-5||x>5。
39.k-1k,-1解析:颠倒一个字符串中的字符,就是首尾对应的元素两两交换。简单地可用两个游标变量i和j,i是前端元素的下标,j是后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[j]。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1)。每次交换后,i增1,j减1。继续交换的条件是str[i]位于str[j]的前面,即i<j。字符串末元素的下标是它的长度减1,所以在第二个空框处应填入-1。程序为了交换str[i]和str[j],使用了变量k,该变量应在程序的变量定义部分中一起定义,所以在第一个空框处应填入k。
40.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。
41.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。
42.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。注意:合法的标识符第一个字符必须为字母或下划线。
43.D解析:本题考核的知识点是指针变量定义和赋值语句的基本应用。在使用一个指针变量之前,先要用声明语句对其进行定义,在定义了一个指针变量之后,系统就为这个指针变量分配了一个存储单元,用它来存放地址。在C语言中有两个有关指针的运算符:&运算符,为取地址运算符,*运算符是指针运算符,*p代表p所指向的变量。本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q并让它指向p,选项A中将常量1赋给指针p不正确;选项B也是将常量2赋给*p,故选项B不正确;选项C中P不是指向指针的指针变量,而将他赋值给一个指向指针的指针变量小显然不正确,所以,4个选项中选项D符合题意。
44.B解析:所谓的线性结构:如果一个非空的数据结构满足下列两个条件,即
1)有且只有一个根结点;
2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的只有线性表,而其他三种数据结构的结点可能存在多个前件或后件,所以不是线性结构。
45.A
46.A解析:结构体变量所占的存储空间是各个分量所占空间的总和。共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。m占2个字节,f占4个字节,因此结构体变量a所占的存储空间为6字节。k[6]占6个字节,d占8个字节。共用体变量b所占的存储空间与占存储空间最多的d所占存储空间的字节数相同。所以,A选项为所选。
47.A解析:C程序中注释部分用“/*”和“*/”括起来,可以出现在程序中任何合适的地方;花括号“{”和“}”不仅可作为函数体的定界符,也可作为复合语句的定界符;构成C程序的基本单位是函数:—个语句必须在最后出现分号,分号是C语句中不可缺少的部分。
48.D解析:本题考查语句的基本构成。选项A)中j=5后面少了一个分号:选项B)中少了“}”;选项C)不是一个完整的函数定义格式,一个完整的函数定义格式还包括一对花括号:选项D)正确,是一个空语句。
49.D
50.D解析:1966年,Bohra和Jacopini提出了以下三种结构,用这三咱基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
51.B解析:本题考查带参数的宏的定义及相关运算:S=m+n+m+n*k=1+2+1+2*3=10。
52.C解析:事实上,无论有无Static修饰,外部变量都具有A、B和C三种特性。作为—种修饰,static仅是限制此类型外部变量的引用范围C只能在定义它的文件范围内使用。
53.B解析:本题考查了通过指针来引用一维数组元素的方法。题中*p=a;这一赋值语句是指针p指向了数组a的首地址,p+5是指针p向后移动了5个int类型的存储单元,所以p+5指向了数组元素a[5]。
54.A解析:函数定义时如果数据类型默认,则默认为int。函数中如果有“retum(表达式):”语句,表达式的类型可能与函数的类型不一致,但它并不能改变函数的类型,实际情况是把表达式转换为函数值的类型作为返回值,因此本题的函数值类型是int。
55.DD。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。
56.A解析:C语言中的函数可以进行递归调用,但不能在函数中定义函数,即函数不能嵌套定义。函数可以没有返回值,若有返回值,则返回值类型必须确定。
57.A
58.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。
59.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。
60.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。
61.Af(2)展开后为,2*5+1,值为ll,f(1+1)展开后为,l+1*5+1值为7,所以答案选择A):
62.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。
63.A数据流图(DFD)是用来描绘系统的逻辑模型的,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。
数据流图的4种基本符号分别是数据的源点或终点、数据流、数据存储和加工。
64.AA。【解析】线性表的存储通常分为两种存储结构:顺序存储结构和链式存储结构。
\n
65.Afun()函数使用了静态变量,静态变量只在声明时初始化一次。首先实参的数值是一12,if判断后输出负号,并将n=12,计算k+=n%10一k+=2—2,因此输出2,后将数值除以10,结果为1,递归调用fun()函数,第二次调用fun(),此时n=1,k=2,计算k+=n%10-÷k+=1——*3,因此打印3。故最后打印结果为一2,3,。故答案为A选项。
66.A本愿考查位运算符以及相关运算,‘为按位或,&为按位与,部么a"b为3,再与c按位与仍然为3,所以答案为A选项。
67.B
68.A解析:软件调试的任务是诊断和改正程序中的错误,本题正确答案为A)。其他二项描述不正确,选项B)描述不全面,选项C)描述太绝对,选项D)描述不符合定义。
69.AB选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。
70.B解析:按逻辑位运算的特定作用主要有3点:①用按位与运算将特定位清0或保留特定位:②用按位或运算将特定的位置设置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。
71.C\n栈是限定在一端进行插入与删除的线性表。栈是按照“先进后出”的或后进先出的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。本题答案是C)。
\n
72.A
73.B选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。
74.A解析:结构化程序由3种基本结构组成,即顺序结构、循环结构(包括for语句、while语句及do…\u3000while语句)和选择结构(包括if语句和switch语句)。
75.C\n考查简单的c程序,题目中x=011而输出函数中是++x,说明是先加l,所以为l0,答案选择C。
\n
76.CC【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C。
77.A
78.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:
(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。
(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。
(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。
(4)++和--运算符的结合方向是“自右向左”。
(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。
79.B
80.B解析:专门的关系运算包括:选择、投影和连接。1、选择:从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算,即从水平方向抽取记录。2、投影:从关系模式中指定若干个属性组成新的关系。投影是从列的角度进行的运算,相当于对关系进行垂直分解。3、连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来控制的,连接条件中将出现两个表中的公共属性名,或者具有相同语义、可比的属性。选择和投影运算的操作对象只是一个表。相当于对一个二维表进行切割。连接运算需要两个表操作为操作对象。由图可知关系R通过运算得到关系S。关系S与关系R相比,记录的条数没有发生变化,属性的个数发生了变化。因此所使用的运算应该是投影。选项C插入运算会增加记录的条数。所以选项B是正确的。
81.
82.1intfun(inta[M][N])2{3inti,j,sum=0;4for(i=0;i<m;i++)5for(j=0;j<n;j++)6if(i==o||i==M-1||j==0||j==N-1)/*只要下标中有一个为。或M-1或N-1,则它一定是周边元素*/7sum=sum+a[i][j];/*将周边元素相加*/8returnsum;9}本题采用逐一判断的方式求数组周边元素和。二维数组周边元素的规律是,其两个下标中一定有一个是0或M-1或N-1。程序中循环语句用来控制数组的行和列,条件语句用来判断数组元素是否为周边元素。</n;j++)</m;i++)</n;j++)</m;i++)2021-2022年山西省晋城市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列关于标识符的说法中错误的是
A.合法的标识符是由字母、数字和下划线组成
B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D.用户标识符与关键字不同时,程序在执行时将给出出错信息
2.
3.算法的时间复杂度是指A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数
4.
5.
6.语句int(*ptr)的含义是()。
A.ptr是一个返回值为int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
7.fscanf函数的正确调用形式是()
A.fscanf(fp,格式字符串,输出表列);
B.fscanf(格式字符串,输出表列,fp);
C.fscanf(格式字符串,文件指针,输出表列),
D.fscanf(文件指针,格式字符串,输入表列);
8.软件生命周期中,花费最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
9.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
10.若有定义“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要将它们连接成新串“personnameaddress”,正确的函数调用语句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
11.
12.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0
13.有以下程序:#include<stdio.h>structstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序运行后的输出结果是()。A.ZhangB.ZhaoC.WangD.19
14.数据库是______的集合,它具有统一的结构形式并存放于统一的存储介质内,可被各个应用程序所共享。
A.视图B.消息C.数据D.关系
15.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
16.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入l0,程序的输出结果是()。
A.55
B.54
C.65
D.45
17.下列给字符数组初始化中,()是正确的。
A.chars2[3]="xyz";
B.chars1[]="abcd";
C.chars3[][3]={'a','x','y'};
D.chars4[2][3]={"xyz","mnp"};
18.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)
19.若函数中有定义语句:inta;,则()。
A.系统将自动给a赋初值为0B.系统将自动给a赋初值一lC.这时a中的值无意义D.这时a中无任何值
20.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。A.741B.963C.852D.875421
二、2.填空题(20题)21.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
22.设有定义:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
23.以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
24.无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。
25.以下程序的功能是将宁符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf4568h,执行程序后输出:123456。请填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
26.要使以下程序段输出10个整数,请填入一个整数;
for(i=0;i<=【】;printf("%d\n",i+=2));
27.对二叉排序树进行查找的方法是:用待查的值与根结点的值相比,若比根小,则继续在【】子树中找。
28.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后的输出结果是【】。
29.若输入字符串:abcde↓,则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
30.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
31.下面程序由两个源程序文件:t4.h和t4.c组成,程序编译运行的结果是:【】。
t4.h的源程序为:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序为:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
32.把数学表达式改写成C语言的表达式是【】。
33.在关系数据库中把数据表示成二维表,每一个二维表称为【】。
34.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。
35.表示“整数x的平方大于36"时的值为“真”的C语言逻辑表达式是【】。
36.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。
37.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
38.表示""整数x的绝对值大于5""时值为""真""的C语言表达式是【】。
39.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
40.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。
三、1.选择题(20题)41.现有格式化输入语句,
A.intB.floatC.doubleD.不确定
42.下列关于标识符的说法中错误的是
A.合法的标识符是由字母、数字和下划线组成
B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D.用户标识符与关键字不同时,程序在执行时将给出出错信息
43.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
44.以下数据结构中属于线性数据结构的是
A.集合B.线性表C.二叉树D.图
45.下列程序执行后输出结果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}
A.you&meB.youC.meD.err
46.在下列定义中的共用体所占内存字节数是()。union{chark[6];struct{intm;floarf;}a;doubled;}b;
A.8B.14C.18D.10
47.下列叙述中正确的是______。
A.C程序中注释部分可以出现在程序中任何合适的地方
B.花括号""{""和""}""只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的—部分
48.下列写法正确的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
49.关于if后一对圆括号中的表达式,以下叙述中正确的是()
A.只能用逻辑表达式B.只能用关系表达式C.既可用逻辑表达式也可用关系表达式D.可用任意表达式
50.一个良好的算法由下面的基本结构组成,但不包括______。
A.顺序结构B.选择结构C.循环结构D.跳转结构
51.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
52.若一个名部变量的定义形式为staticintx;,那么,其中static的作用应该是______。
A.将变量存储在静态存储区B.使变量X可以由系统自动初始化C.使x只能在本文件内引用D.使x的值可以永久保留
53.若有定义inta[9],*p=a;则p+5表示
A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5
54.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
55.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
56.以下对C语言函数的有关描述中,正确的是
A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
57.以下程序的运行结果为______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}
A.1123581321
B.1122551010
C.1258981321
D.0112451521
58.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
59.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
60.以下对枚举类型名的定义中正确的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
四、选择题(20题)61.有以下程序
62.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0
63.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图内容的是
A.控制流B.加工C.数据存储D.数据流
64.常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
65.有以下程序:
程序运行后的输出结果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
66.有以下程序:
程序运行后的输出结果是()。
A.3B.1C.2D.0
67.
68.软件(程序)调试的任务是()。
A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质
69.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。
70.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~
71.下列关于栈的叙述中正确的是()。
A.在栈中只能插入数据,不能删除数据
B.在栈中只能删除数据,不能插入数据
C.栈是先进后出(FILO.的线性表
D.栈是先进先出(FIFO.的线性表
72.
73.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
74.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
75.有以下程序:
#include<stdio.h>
main()
{intX=011;
printf("%d\n",++x);
}
程序运行后的输出结果是()。
A.12B.11C.10D.9
76.下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.以上说法都不正确
77.
78.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
79.若有说明:inti,j=7,*p=&i;,则与i=j;等价的语句是()。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
80.有两个关系R、S如下:
由关系R通过运算得到关系s,则所使用的运算为()。
A.选择B.投影C.插入D.连接
五、程序改错题(1题)81.写出下列程序的运行结果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为13579299946999813570则函数值为61。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
参考答案
1.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- racemic-6-7-Epoxy-cannabichromene-生命科学试剂-MCE-6900
- Gluconapin-生命科学试剂-MCE-5096
- 25B-NB3OMe-hydrochloride-生命科学试剂-MCE-6391
- 施工日志填写样本外墙装饰工程
- 跨代沟通与家庭关系中的文化融合
- DB15T 3843-2025新能源分布式电源并网技术规范
- 云计算建设项目服务合同
- 事业单位与员工停薪留职合同范本
- 个人车位交易合同范例
- 个人企业房屋租赁合同模板
- 苏州2025年江苏苏州太仓市高新区(科教新城娄东街道陆渡街道)招聘司法协理员(编外用工)10人笔试历年参考题库附带答案详解
- 搞笑小品剧本《大城小事》台词完整版
- 物业服务和后勤运输保障服务总体服务方案
- 2025年北京市文化和旅游局系统事业单位招聘101人笔试高频重点提升(共500题)附带答案详解
- 中学学校2024-2025学年第二学期教学工作计划
- 人大代表小组活动计划人大代表活动方案
- 《大模型原理与技术》全套教学课件
- 2023年护理人员分层培训、考核计划表
- 《销售培训实例》课件
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解)
- 【经典文献】《矛盾论》全文
评论
0/150
提交评论