二级C语言模拟652.docx
《二级C语言模拟652.docx》由会员分享,可在线阅读,更多相关《二级C语言模拟652.docx(21页珍藏版)》请在冰豆网上搜索。
![二级C语言模拟652.docx](https://file1.bdocx.com/fileroot1/2023-3/30/8585ac8a-0232-4e87-82d3-d0b8e3be0eb7/8585ac8a-0232-4e87-82d3-d0b8e3be0eb71.gif)
二级C语言模拟652
二级C语言模拟652
一、选择题
1、设变量x为longint型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是______。
A.x/10%100 B.x%10/100
C.x%100/10 D.x/100%10
2、有以下程序:
#include<stdio.h>
main()
{unsignedchara=2,b=4,c=5,d;
d=a|b;d&=c;printf("%d\n",d);}
程序运行后的输出结果是______。
A.3 B.4 C.5 D.6
3、有以下程序:
#include<stdio.h>
main()
{
structSTU
{
charname[9];
charsex;
doublescore[2];
};
structSTUa={"Zhao",'m',85.0,90.0},b={"Qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
A.Qian,m,85,90 B.Zhao,m,85,90 C.Zhao,f,95,92 D.Qian,f,95,92
4、有以下程序:
#include<stdio.h>
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;a+=i;}
pfintf("%d\n",a);}
程序的输出结果是______。
A.62 B.63 C.33 D.32
5、有以下程序:
#include<stdio.h>
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=1;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序运行后的输出结果是______。
A.1 B.3
C.4 D.0
6、以下关于C语言的叙述中正确的是______。
A.C语言的数值常量中夹带空格不影响常量值的正确表示
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中、运算符两侧的运算数类型必须一致
D.C语言中的注释不可以夹在变量名或关键字的中间
7、在软件设计中不使用的工具是______。
A.系统结构图 B.PAD图 C.数据流图(DFD图) D.程序流程图
8、有以下程序:
#include<stdio.h>
main()
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
程序执行后的输出结果是______。
A.1 B.2 C.4 D.死循环
9、下列叙述中正确的是______。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
10、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 ( )
A.a<>0 B.!
a C.a=0 D.a
11、以下叙述中,正确的是______。
A.局部变量说明为static的存储类,其生存期将得到延长
B.全局变量说明为static的存储类,其作用域将被扩大
C.任何存储类的变量在未赋初值时,其值都是不确定的
D.形参可以使用的存储类说明符与局部变量完全相同
12、以下结构体说明和变量定义中,正确的是______。
A.typedefstructabc{intn;doublem;}ABC;
ABCx,y;
B.structabc{intn;doublem};
structabcx,y;
C.structABC{intn;doublem;}
structABCx,y;
D.structabc{intn;doublem;};
abcx,y;
13、在软件开发过程中,软件结构设计是描述______。
A.数据存储结构 B.软件体系结构 C.软件结构测试 D.软件控制过程
14、设有定义:
char*c;
以下选项中能够使c正确指向一个字符串的是______。
A.charstr[]="string";c=str; B.scanf("%s",c);
C.c=getchar(); D.*c="string";
15、以下四个程序中不能对两个整型值进行交换的是______。
A.#include<stdio.h>
voidswap(int*p,int*q)
{ int*t,a;
t=&a;*t=*p;*p=*q;*q=*t;
}
main()
{ inta=10,b=20;
swap(&a,&b);printf("%d%d\n",a,b);
}
B.#include<stdio.h>
voidswap(int*p,int*q)
{ intt;
t=*p;*p=*q;*q=t;
}
main()
{ inta=10,b=20;
swap(&a,&b);printf("%d%d\n",a,b);
}
C.#include<stdio.h>
voidswap(int*p,int*q)
{ intt;
t=*p;*p=*q;*q=t;
}
main()
{ int*a,*b;
*a=10,*b=20;
swap(a,b);printf("%d%d\n",*a,*b);
}
D.#include<stdio.h>
voidswap(int*p,int*q)
{ intt;
t=*p;*p=*q;*q=t;
}
main()
{inta=10,b=20,*x=&a,*y=&h;
swap(x,y);printf("%d%d\n",a,b);
}
16、若有以下程序:
#include<stdio.h>
main()
{int a=0,b=0,c=0
c=(a+=++b,b+=4);
printf("%d,%d,%d\n",a,b,c);
}
则程序的输出结果是______。
A.1,5,1 B.1,5,5 C.-1,4,4 D.-1,4,-1
17、以下有4组用户标识符,其中合法的一组是______。
A.For
-sub
Case
B.4d
DO
Size
C.f2_G3
IF
abc
D.WORD
void
define
18、以下选项中,不能对主函数中变量i和j的值进行交换的程序是______。
A.#include<stdio.h>
voidswap(int*p,int*q)
{int*t;
*t=*p;*p=*q;*q=*t;
}
main()
{
inti=10,j=20,*a=&i,*b=&j;
swap(a,b);printf("i=%dj=%d\n",i,j);
}
B.#include<stdio.h>
voidswap(int*p,int*q)
{intt;
t=*p;*p=*q;*q=t;
}
main()
{
inti=10,j=20,*a=&i,*b=&j;
swap(a,b);printf("i=%dj=%d\n",i,j);
}
C.#include<stdio.h>
#include<stdlib.h>
voidswap(int*p,int*q)
{int*t;
t=(int*)malloc(sizeof(int));
*t=*p;*p=*q;*q=*t;
free(t);
}
main()
{
inti=10,j=20;
swap(&i,&j);printf("i=%dj=%d\n",i,j);
}
D.#include<stdio.h>
voidswap(int*p,int*q)
{intt;
t=*p;*p=*q;*q=t;
}
main()
{
inti=10,j=20,*x=&i,*y=&j;
swap(x,y);printf("i=%dj=%d\n",i,j);
}
19、有以下程序:
#include<stdio.h>
structS{inta;intb;};
main()
{ structSa,*p=&a;
a.a=99;
printf("%d\n",______);
}
程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是______。
A.a.a B.*p.a C.p->a D.(*p).a
20、以下叙述中正确的是______。
A.a是实型变量,C允许进行赋值a=10,但不可以这样说:
实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
21、有以下程序:
#include<stdio.h>
main()
{chars1[]="programe",s2[]="Language";
char*p1=s1,*p2=s2;
intk;
for(k=0;k<8;k++)
if(*(p1+k)==*(p2+k))
printf("%s\n",*(p1+k));
}
程序的运行结果是______。
A.grameamee B.gae C.programe D.无输出字符
22、循环队列的存储空间为Q(1:
50),初始状态为front=rear=50。
经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为______。
A.51 B.50 C.49 D.1
23、有以下程序
#include<stdio.h>
main()
{
inta=1,b=2,c=3,x;
x=(a^b)&c;
printf("%d\n",x);
}
程序的运行结果是______。
A.2 B.1 C.3 D.0
24、在软件开发中,需求分析阶段产生的主要文档是______。
A.软件集成测试计划 B.软件详细设计说明书
C.用户手册 D.软件需求规格说明书
25、设a、b和c都是int型变量,且a=3,b=4,c=5,则以下的表达式中值为0的表达式是
A.a&&b B.a<=b C.a‖b+c&&b-c D.!
((a<b)&&!
c‖1)
26、以下叙述错误的是______。
A.C语言区分大小写
B.C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改
C.整数和实数都能用C语言准确无误地表示出来
D.在C程序中,正整数可以用十进制、八进制和十六进制的形式来表示
27、有下列程序:
main()
{ inty=10
do{y--;}while(--y);
printf("%d\n",--y);
}
当执行程序时,输m的结果是______。
A.-1 B.1
C.4 D.0
28、若有以下定义和语句:
chars[10]="abcd!
",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
则输出结果是______。
A.55 B.105
C.107 D.58
29、在软件开发中,需求分析阶段产生的主要文档是______。
A.软件集成测试计划 B.软件详细设计说明书
C.用户手册 D.软件需求规格说明书
30、有如下嵌套的if语句
if(a<b)
if(a<c)k=a;
elsek=c;
else
if(b<c)k=b;
elsek=c;
以下选项中与上述if语句等价的语句是______。
A.k=(a<b)?
((a<c)?
a:
c):
((b<c)?
h:
c); B.k=(a<b)?
((b<c)?
a:
b):
((h>c)?
b:
c);
C.k=(a<b)?
a:
b;k=(b<c)?
b:
c; D.k=(a<b)?
a:
h:
k=(a<c)?
a:
c;
31、有以下程序
#include<stdio.h>
main()
{inti;
for(i=1;i<=40;i++)
{ if(i++%5==0)
if(++i%8==0)printf("%d",i);
}
printf("\n");
}
执行后的输出结果是______。
A.32 B.24 C.5 D.40
32、下列程序的运行结果是______。
main()
{intx=1,y=3,a=0;
while(x++!
=(y-=1))
{ a+=1;
if(y<x) break;
}
printf("%d,%d,%d\n",x,y,a);
}
A.2,3,2 B.2,3,1
C.1,3,3 D.3,1,2
33、数据库系统的三级模式不包括______。
A.概念模式 B.内模式 C.外模式 D.数据模式
34、下面不能作为结构化方法软件需求分析工具的是______。
A.系统结构图 B.数据字典(DD. C.数据流程图(DFD图) D.判定表
35、有以下程序段:
intk=0;
while(k=)k++;
while循环执行的次数是______。
A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行一次
36、有以下程序
#include<stdio.h>
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b);
}
程序运行后的输出结果是______。
A.1,2 B.1,0 C.3,2 D.0,0
37、若有定义语句:
chars[10]="1234567\0\0";
则strlen(s)的值是______。
A.7 B.8 C.9 D.10
38、若变量已正确定义为float型,要通过输入语句:
scanf("%f%f%%f,&a,&b,&c);给a赋值11.0,b赋值22.0,c赋值33.0,不正确的输入形式是
A.11
22
33
B.11.0,22.0,33.0
C.11.0
22.033.0
D.1122
33
39、若已建立以下链表结构,指针p、s分别指向如图所示结点:
则不能将s所指结点插入到链表末尾的语句组是______。
A.p=p->next:
s->next=p;p->next=s;
B.s->next='\0';p=p->next;p->next=s;
C.p=p->next;s->next=p->next;p->next=s;
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
40、设有定义:
inta=1,b=2,c=3;
以下语句中执行效果与其它三个不同的是______。
A.if(a>b)c=a;a=b;b=c; B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a,a=b,b=c; D.if(a>b){c=a;a=b;b=c;}
二、程序填空题
41、下列给定程序中,函数fun的功能是:
将S所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。
例如,s所指的字符串为“def35adh3kjsdf7”,执行后结果为“defadhkjsdf3537”。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:
部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
voidfun(char*s)
{
inti,j=0,k=0;
chart1[80],t2[80];
for(i=0;s[i]!
='\0';i++)
if(s[i]>='0'&&s[i]<='9')
{
t2[j]=s[i];
______;
}
else
{
t1[k++]=s[i];
}
t2[j]=0;
t1[k]=0;
for(i=0;i<k;i++)
______;
for(i=0;i<______;i++)
s[k+i]=t2[i];
}
main()
{
chars[80]="ba3a54j7sd567sdffs";
pfintf("\nTheoriginalstringis:
%s\n",s);
fun(s);
pfintf("\nTheresultis:
%s\n",s);
}
三、程序修改题
42、给定程序MODI1.C中函数fun的功能是:
将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
voidfun(longs,long*t)
{ intd;
longsl=1;
/************found************/
t=0;
while(s>0)
{ d=s%10;
/************found************/
if(d%2==0)
{ *t=d*sl+*t;
sl*=10;
}
s/=10;
}
}
main()
{ longs,t;
printf("\nPleaseenters:
");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
四、程序设计题
43、m个人的成绩存放在score数组中,请编写函数fun,它的功能是将低于平均分的人数作为函数值返回,将低于平均分的分数放在