




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年甘肃省嘉峪关市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.合法的数组定义是()
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.chara={0,1,2,3,4,5};
2.若输入“abcdef”、“abdef”,以下程序的输出结果为()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
3.下面程序的输出结果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
4.
5.一个队列的入队序列是a,b,c,d,则出队序列是()。
A.a,b,c,dB.a,c,b,dC.d,c,b,aD.a,c,b,d
6.以下关于注释的叙述中错误的是()。
A.注释的边界符号“/”和“*”之间不允许加入空格
B.C语言允许注释出现在程序中任意合适的地方
C.注释的内容仅用于阅读,对程序的运行不起作用
D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套
7.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序执行后的输出结果是()。A.35B.37C.39D.3975
8.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
9.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
10.下列叙述中正确的是()。
A.数据的逻辑结构与存储结构必定是一一对应的
B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D.以上三种说法都不对
11.针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为()
A.68,34,17,9,13,11,10
B.68,34,17,8,12,10
C.69,35,18,10
D.68,34,18,9,13,11,10
12.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作
B.文件打开时,原有文件内容不被删除,只能进行读操作
C.文件打开时,原有文件内容被删除,只能进行写操作
D.以上三种说法都不正确
13.
14.有以下程序: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
15.表达式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
16.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序运行后的输出结果是()。
A.7B.0C.3D.8
17.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
18.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序运行后的输出结果是()。A.b,bB.b,cC.a,bD.a,c
19.下列字符数组初始化语句中,不正确的是()。
A.charc[]=goodmorning;
B.charc[20]="goodmorning";
C.charc[]={a,b,c,d);
D.charc[]={"ffgoodmorning"};
20.可以判断一个有向图中是否含有回路的方法为()。
A.广度优先遍历B.深度优先遍历C.拓扑排序D.求最短路径
二、2.填空题(20题)21.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。
22.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
23.在E-R图中,矩形表示【】。
24.函数sstrcmp的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp)。请填空。
#include<stdio.h>
intsstrcmp(char*s,char*t)
{while(*s&&*t&&*s==【】)
{s++;t++;}
return【】;
}
25.源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。
26.软件定义时期主要包括______和需求分析两个阶段。
27.以下程序的运行结果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
28.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
29.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
30.设有以下定义和语句,则*(*(P+2)+1)的值为【】。
int[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
31.若x和a均是int型变量,则计算完x=(a=4,6*2)后的x值为______。
32.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
33.在一棵二叉树上第6层的结点个数最多是______个。
34.下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
35.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
36.下列程序的输出结果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
37.以下程序的输出结果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
38.数据流的类型有______和事务型。
39.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
40.有以下程序:
#include<string.h>
structSTU
{charname[10];
intnum;};
voidf(char*name,intnum)
{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
p=&s[1];f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序运行后的输出结果是【】。
三、1.选择题(20题)41.在C语言中,如果下面的变量都是血类型,则输出的结果是______。sum=pad=5;pAd=sum++,pad++,++pAd;printf("%d\n",pad);
A.7B.6C.5D.4
42.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。A.EOFB.非0值C.0D.NULL
43.fwrite函数的一般调用形式是
A.fwrite(buffer,count,size,fp);
B.fwrite(fP,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,fp);
44.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A.kk>='A'&&kk<='Z'
B.!(kk>='A'||kk<="Z")
C.(kk+32)>='a'&&(kk+32)<='Z'
D.isalpha(kk)&&(kk<91)
45.以下不正确的定义语句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
46.下列程序的功能:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。
main()
/*Beginning*/
{intr;floats;
scanf("%d",£r);
star*r*r;
printf("s=%f\n",s);
}
出错的原因是()。
A.注释语句书写位置错误
B.存放圆半径的变量r不应定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句使用非法变量
47.有定义语句:"inta=1,b=2,c=3,x;",则以下选项中各程序段执行后,x的值不为3
A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;
B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;
D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;
48.下面程序的文件名为t.exe,在DOS下输入的命令行参数为:ttomeetme<回车>
则程序输出的结果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正确
49.下列不属于软件工程三要素的是
A.工具B.过程C.方法D.环境
50.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
51.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
52.有下列程序:
main()
{intt,a=1,b=5,C=-2;
while(a>b>C)
{t=a;a=b;b=t;c++;}
printf("%d,%d,%d",a,b,C);
}
程序的输出结果是()。
A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2
53.有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是______。
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
54.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是
A.0a<b且c=dy={1a>=b
B.0a<b且c=dy={1a>=b且c≠d
C.0a<b且c=dy={1a<b且c≠d
D.0a<b且c=dy={1c≠d
55.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
56.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
57.要正确定义并初始化一个数组a,它含有5个元素,则正确的语句是______。
A.inta[5]=(0,0,0,0,0);
B.inta[5]={};
C.inta[]={0,0,0,0,0};
D.inta[]={5*0};
58.下列关于标识符的说法中错误的是
A.合法的标识符是由字母、数字和下划线组成
B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D.用户标识符与关键字不同时,程序在执行时将给出出错信息
59.以下程序的输出结果是()。#include<stdio.h>main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d",p[i]);}
A.52B.51C.53D.97
60.若有说明语句:doubleop,a;,则能通过scanf语句正确给输入项读入数据的程序段是()。
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
四、选择题(20题)61.
62.
63.在C语言中,合法的长整型常数是()。
A.0.123456B.4962717C.9LD.5.321e2
64.下列叙述中正确的是()。
A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
B.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
C.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
D.顺序存储结构能存储有序表,链式存储结构不能存储有序表
65.
66.在一个C语言源程序文件中所定义的全局变量,其作用域为()。
A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围
67.
68.设有定义:
69.一个栈的初始状态为空。现将元素l、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,恻元素出栈的顺序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA
70.程序流程图(PFD.中的菱形代表的是()。
A.数据流B.控制流C.加工步骤D.逻辑条件
71.有以下程序
#include<stdio.h>
#include<stdlib.h>
intfun(intt)
{int*p;
p=(int*)malloc(sizeof(int));
*p=t;return*p;
}
main()
{inta;
a=fun(8);
printf("%d\n",a+fun(10));
}
程序的运行结果是
A.0B.10
C.18D.出错
72.
73.
有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。
structnode
{intdata;structnode*next;)*p,*q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是()。
A.p->next=q->next;
B.P-next=P->next->next;
C.p->next=r;
D.p=q->next;
74.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
75.有以下程序程序执行后的输出结果是()。
A.abe,a23B.abe,123C.123,abeD.321,cba
76.下列叙述中正确的是()。A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性
77.
78.在C语言中,运算对象必须是整型数的运算符是()。
A.%B.\C.%和\D.**
79.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是______。
A.12353514B.12353513C.12343514D.12343513
80.有以下程序:
程序运行后的输出结果是()。
A.2B.0C.元素ch[5]的地址D.字符y的地址
五、程序改错题(1题)81.在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数proc()的功能是计算数组元素中值为负数的平均值(不包括0)。例如,数组中元素的值为78、-65、-15、35、-45、0,则程序的运行结果为-41.666667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数其功能是移动一维数组中的内容,若数组中有n个整数,要求把下标为0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为5、6、7、8、9、10、1、2、3、4。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
参考答案
1.D
2.A
3.B解析:sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;constb=12;,其中数据类型可以缺省,默认为整型;enumc{a1,a2};定义了—个枚举类型enumc,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。因此它们的字节数均为2,2,2。
4.A
5.A
6.D在编写程序时可以在程序中加入注释。在添加注释时,注释内容必须放在符号“/*”和“*/”之间,“/*”和“*/”必须成对出现,“/*”与“*/”之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只适用于阅读,对程序的运行不起作用,选项C正确;使用“/*”和“*/”的注释之间不可再嵌套“/*”和“*/”,选项D错误。故本题答案为D选项。
7.D执行第一次for循环时,用表达式p[i][J]!=\o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-\o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。
8.C解析:每个C程序有且只有一个主函数main(),且程序必须从main函数开始执行,并在main()函数中结束。
9.D解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。
10.D解析:一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的。选项A中的说法是错误的。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构,例如,线性链表是线性表的链式存储结构。一般来说,性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项B中的说法也是错误的。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性结构,但对于满二叉树与完全二叉树来说,根据完全二叉树的性质6,可以按层序进行顺序存储,即利用程序设计语言中的数组来存储,这样,不仅节省了存储空间,又能方便地确定每一个结点的父结点与左右子结点的位置。对于一般的二叉树来说,也可以将二叉树中每一个结点的左指针、右指针以及数据域分别用三个数组中的对应元素来存储,即实际上也是利用了程序设计语言中的数组来处理二叉树这样的非线性结构。选项C中的说法也是错误的。综上所述,选项A、B与C中的说法都是错误的。
11.B
12.A解析:本题考查文件使用方式标识符,以“a+”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。
13.C
14.A题目中定义了一个结构体数组c并初始化,指针pt指向c的第1个元素。则“++pt->x”为11,“pt->x”为10,“*pt->y”为1,“(pt++)->x”为20。故本题答案为A选项。
15.C首先计算表达式“a=9”;再计算表达式“a-=9”;即“a=a-9”,结果为0;最后计算表达式“a+=0”,即“a=a+0”,所以最终结果为0。故本题答案为C选项。
16.C根据题意,要求统计字符数组s中阿拉伯数字的个数。“chars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以计算出‘\\0’之前阿拉伯数字的个数,由字符数组s可知,有3个阿拉伯数字。故本题答案为C选项。
17.D本题考查如何引用数组元素的地址。选项A)中,p5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。
18.A++a与a++的区别是前者先自加再运算,后者是先运算后自加。
19.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。
20.C
21.QTHRGQTHRG解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。strcpy(t,s)函数的功能是把字符数组s所指字符串的内容复制到字符数组t所指的存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环.s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。
22.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式输出\'C\'的ASCII码为67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式输出为\'G\'。
23.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。
24.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函数sstrcmp()有两个字符型指针变量,用来指向两个字符串。比较两个字符串的大小方法是:从第一个字符开始依次向后比较,若对应的字符相等则接着比较下一个字符,一直到两个字符串中对应字符不等,或者有一个为\\0,此时字符的ASCII码大的字符串就大。故循环条件是*s和*t不为\\0,且*s和*t相同,第一处应填“*t”或其他等价形式。根据题意可知第二处应填*s-*t或其等价形式。
25.功能性功能性
26.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:①软件定义阶段:可行性研究和需求分析;②软件开发阶段:设计、实现和测试;③软件运行维护阶段:交付使用和维护。
27.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为'1,2,3,0,0,1,2,3,0,0,'。
28.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。
在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
29.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。
30.6060解析:本题定义了一个3行2列的二维数组a,并定义了一个指向两个元素的一维数组指针p,让p指向二维数组a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。
31.1212解析:x=(表达式1,表达式2,…)的形式,结果为最后一个表达式的值:x=(a=4,6*2)=2*6=12。
32.概念(或概念级)概念(或概念级)
33.3232解析:根据二叉树的性质,在二叉树的第K层上,最多有2k-1个结点。所以,第6层的结点数最多为32。
34.s[i]!='\0's[i]!='\\0'解析:本题是要删除字符数组中和c一样的字符,for循环实现的功能是逐个读出字符数组s中的元素,并和字符c做比较,直到遇到字符串结束标志'\\0',结束循环,所以横线上应该填s[i]!='\\0'。
35.doublemax或externdoublemaxdoublemax或externdoublemax解析:函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递.函数声明的一般格式为:类型标识符函数名(类型标识符形参,…);这些信息就是函数定义中的第一行的内容。本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。
36.1234theend1,2,3,4,theend解析:本题考查带参数的宏的定义。第1次循环,i=1时,调用PRINT(1),P(1)输出1;第2次循环,i=2时,调用PRINT(2),P(2)输出2:第3次循环,i=3时,调用PRINT(3),P(3)输出3:第4次循环,i=4时,调用PRINT(4),P(4)输出4,theend。
37.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值“BCD”并换行,依次执行循环语句。
38.变换型变换型
39.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
40.SunDan20042SunDan20042解析:f函数中形参1用的是显式传地址的方式,因此p->name的值发生改变,而形参2用的传值的方式,在调用时不改变实参的值,因此p->num的值不发生变化。
41.C
42.B(27)B)解析:函数feof的功能是:测试fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则函数返回非0值,否则返回0,表示文件尚未结束。
43.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示准备输出的数据块的起始地址,size表示每个数据块的字节数,count用来指定每写一次或输出的数据块,fp为文件指针。
44.B解析:C语言的字符以其ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的ASCII码在“A”和“Z”之间就可以了,选项A和C符合要求。函数isalpha用来确定一个字符是否为字母,大写字母的ASCII码值的范围为65-90,所以如果一个字母的ASCII码小于91,那么就能确定它是大写字母。
45.B解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋值时有6个元素,所以是错误的。
46.D解析:在C语言程序中,可以用一个符号名宋代表一个常量,称为符号常量。这个符号名必须在程序中进行特别的“指定”,并符合标识符的命令规则。在本题中圆周率冗是一个符号常量,但在程序中并没有指定其值,所以编译器找不到其值就会报错。所以选项D)正确。
47.C解析:本题考核的知识点是if-else语句的程序分析。
选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。
选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。
选项C中,首先选执行第一条if,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条语句,由于“1<1”为假,后面的语句不执行,所以最后的x值为2不为3。
选项D中,首先选执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3.所以,4个选项中选项c符合题意。
48.B解析:argc中存入的是命令行中字符串的个数。argv是一个指向字符型的指针数组的指针。
49.D解析:软件工程三要素是方法、工具和过程。
50.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内
向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以
单独使用也可混合使用。
注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后
对局部视图进行集成得到概念模式。
51.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
52.A解析:本题考查while循环。先判断while循环的控制表达式是否成立,发现a>b>c不成立,所以不执行循环。直接输出a、b、c的值。
53.A解析:char型数据类型以%d的形式输入时,输入的是ASCII值。65是字符A的ASCII码值,66是字符B的ASCII值。
54.C解析:考查if语句的使用。整个语句都是以a<b为假设的,在a<b的情况下,如果c=d,则y=0;否则y=1。所以答案为选项C)。
55.C解析:这是一个逗号表达式,它的值应为表达式y=x+3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。
56.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。
57.C解析:A项是错误的,赋值时用的是花括号而不是圆括号。B项错在不能初始化时在花括号内为空。D项错在不可以用表达式对数组一一赋值。C项虽然没有直接定义数组的大小,但是初始化时只赋了5个元素的值,系统会自动定义数组的大小为5,这种形式是正确的。
58.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。注意:合法的标识符第一个字符必须为字母或下划线。
59.C解析:本题的考查点是通过指针引用数组元素。i=0时,输出P[0],也就是x[1][1],输出5;i=2时,输出p[2],即P[2+0],也就是x[2][0],输出3。
60.D解析:double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf('%1f',p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%if(或%le)。否则,数据不能正确输入。所以选项D)为正确答案。
61.A
62.D
63.C选项A)和D)是实型而非整型。
64.C\n线性表的顺序存储结构是把线性表中相邻的元素存放在相邻的内存单元中,而链式存储结构是用一组任意存储单元来存放表中的数据元素,为了表示出每个元素与其直接后继元素之间的关系,除了存储元素本身的信息外,还需存储一个指示其直接后继的存储位置信息。故线性表的链式存储结构所需的存储空间一般要多于顺序存储结构。
\n
65.D
66.D
\n全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。
\n
67.B
68.A选项中可以在声明变量的同时为data2赋值,但是“data2=(2,6);”应写作
“d2={2,61;’',因此选择A)。
69.B栈按后进先出的原则组织数据,因此入栈最晚的最先出栈,因此本题答案为B)。
70.D程序流程图是软件设计过程中常用的图形描述工具之一。构成程序流程图的最基本符号有:“→”或“↓”表示控制流,“口”表示加工步骤,“
”表示逻辑条件。
71.C本题考查函数的调用。题目给出的程序可以分为两个部分,一个是函数fun,另一个是主函数main。fun函数的功能是输入一个整型变量t,设置一个指向该整型变量的指针p,并将该指针所指向的值返回给main函数。main函数中两次调用了fun函数,第一次变量t的值为8,第二次变量t的值为10,第一次返回值8,使得a=8,第二次返回值10,使得a+fun(10)=18。
72.B
73.D
\n本题考查链表结点的删除,q一>next中存放的是r所指结点的首地址,将r所指结点的首地址存于p--next中,则实现删除q所指点的功能,并保持链表连续,P所指点与r所指结点相连。
\n
74.D解析:本题中的宏调用MA(1+a+b)展开后的结果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以输出的结果是8,选项D正确。
75.A字符串是一个特殊的数组,按照数组的规则,sl应该指向的是数组的首地址,即“abc”的第一个字符的地址,s2指向的是“123”的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符a和’l。的内容,因此打印输出为A)。
76.B线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。
77.A
78.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。
79.A解析:自增运算符“++”,放在变量之前表示在使用变量之前,先使变量的值加1;放在变量之后表示在使用变量之后,再使变量的值加1。第一条输出语句,先输出m=12,m再自加1,变成13,n先自加1再输出,输出n=35;第二条输出语句,先输出n=35,n再自加1,变成36,m先自加1再输出,输出m=14。
80.A语句pc=eh;使得指针变量指向字符数组ch的首地址,即指向字符‘u’,则pc+5指向的是字符向后移动5位,指向字符‘z’。所以输出的$pc+5的值即为‘Z’。因此A选项正确。
81.82.voidfun(int*w,intp,intn){ intX,j,ch; for(x=0;x<=p;x++) { ch=w[0]; for(j=1;j /*通过for循环语句,将p+1~n-1(含n-1)之间的数组元素依次向前移动p+1个存储单元*/ { w[j-1]=w[j]; } w[n-1]=ch; /*将下标为0~p的数组元素逐一赋给数组w[n-1]*/ }}本题要求把下标为0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。可以根据输入的p值,通过for循环语句,将p+1~n-1(含n-1)之间的数组元素依次向前移动p+1个存储单元,即w[j-1]=w[j];。同时将下标为0~p的数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作。2021年甘肃省嘉峪关市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.合法的数组定义是()
A.inta[]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.chara={0,1,2,3,4,5};
2.若输入“abcdef”、“abdef”,以下程序的输出结果为()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
3.下面程序的输出结果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
4.
5.一个队列的入队序列是a,b,c,d,则出队序列是()。
A.a,b,c,dB.a,c,b,dC.d,c,b,aD.a,c,b,d
6.以下关于注释的叙述中错误的是()。
A.注释的边界符号“/”和“*”之间不允许加入空格
B.C语言允许注释出现在程序中任意合适的地方
C.注释的内容仅用于阅读,对程序的运行不起作用
D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套
7.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序执行后的输出结果是()。A.35B.37C.39D.3975
8.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
9.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
10.下列叙述中正确的是()。
A.数据的逻辑结构与存储结构必定是一一对应的
B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D.以上三种说法都不对
11.针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为()
A.68,34,17,9,13,11,10
B.68,34,17,8,12,10
C.69,35,18,10
D.68,34,18,9,13,11,10
12.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作
B.文件打开时,原有文件内容不被删除,只能进行读操作
C.文件打开时,原有文件内容被删除,只能进行写操作
D.以上三种说法都不正确
13.
14.有以下程序: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
15.表达式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
16.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序运行后的输出结果是()。
A.7B.0C.3D.8
17.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
18.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序运行后的输出结果是()。A.b,bB.b,cC.a,bD.a,c
19.下列字符数组初始化语句中,不正确的是()。
A.charc[]=goodmorning;
B.charc[20]="goodmorning";
C.charc[]={a,b,c,d);
D.charc[]={"ffgoodmorning"};
20.可以判断一个有向图中是否含有回路的方法为()。
A.广度优先遍历B.深度优先遍历C.拓扑排序D.求最短路径
二、2.填空题(20题)21.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。
22.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
23.在E-R图中,矩形表示【】。
24.函数sstrcmp的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp)。请填空。
#include<stdio.h>
intsstrcmp(char*s,char*t)
{while(*s&&*t&&*s==【】)
{s++;t++;}
return【】;
}
25.源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。
26.软件定义时期主要包括______和需求分析两个阶段。
27.以下程序的运行结果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
28.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
29.下列程序的输出结果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
30.设有以下定义和语句,则*(*(P+2)+1)的值为【】。
int[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
31.若x和a均是int型变量,则计算完x=(a=4,6*2)后的x值为______。
32.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
33.在一棵二叉树上第6层的结点个数最多是______个。
34.下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
35.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
36.下列程序的输出结果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
37.以下程序的输出结果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
38.数据流的类型有______和事务型。
39.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
40.有以下程序:
#include<string.h>
structSTU
{charname[10];
intnum;};
voidf(char*name,intnum)
{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
p=&s[1];f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序运行后的输出结果是【】。
三、1.选择题(20题)41.在C语言中,如果下面的变量都是血类型,则输出的结果是______。sum=pad=5;pAd=sum++,pad++,++pAd;printf("%d\n",pad);
A.7B.6C.5D.4
42.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。A.EOFB.非0值C.0D.NULL
43.fwrite函数的一般调用形式是
A.fwrite(buffer,count,size,fp);
B.fwrite(fP,size,count,buffer);
C.fwrite(fp,count,size,buffer);
D.fwrite(buffer,size,count,fp);
44.已知字母A的ASCII代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是
A.kk>='A'&&kk<='Z'
B.!(kk>='A'||kk<="Z")
C.(kk+32)>='a'&&(kk+32)<='Z'
D.isalpha(kk)&&(kk<91)
45.以下不正确的定义语句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
46.下列程序的功能:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。
main()
/*Beginning*/
{intr;floats;
scanf("%d",£r);
star*r*r;
printf("s=%f\n",s);
}
出错的原因是()。
A.注释语句书写位置错误
B.存放圆半径的变量r不应定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句使用非法变量
47.有定义语句:"inta=1,b=2,c=3,x;",则以下选项中各程序段执行后,x的值不为3
A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;
B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;
D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;
48.下面程序的文件名为t.exe,在DOS下输入的命令行参数为:ttomeetme<回车>
则程序输出的结果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正确
49.下列不属于软件工程三要素的是
A.工具B.过程C.方法D.环境
50.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A.自顶向下B.由外向内C.由内向外D.自底向上
51.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
52.有下列程序:
main()
{intt,a=1,b=5,C=-2;
while(a>b>C)
{t=a;a=b;b=t;c++;}
printf("%d,%d,%d",a,b,C);
}
程序的输出结果是()。
A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2
53.有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是______。
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
54.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是
A.0a<b且c=dy={1a>=b
B.0a<b且c=dy={1a>=b且c≠d
C.0a<b且c=dy={1a<b且c≠d
D.0a<b且c=dy={1c≠d
55.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
56.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
57.要正确定义并初始化一个数组a,它含有5个元素,则正确的语句是______。
A.inta[5]=(0,0,0,0,0);
B.inta[5]={};
C.inta[]={0,0,0,0,0};
D.inta[]={5*0};
58.下列关于标识符的说法中错误的是
A.合法的标识符是由字母、数字和下划线组成
B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
D.用户标识符与关键字不同时,程序在执行时将给出出错信息
59.以下程序的输出结果是()。#include<stdio.h>main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d",p[i]);}
A.52B.51C.53D.97
60.若有说明语句:doubleop,a;,则能通过scanf语句正确给输入项读入数据的程序段是()。
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
四、选择题(20题)61.
62.
63.在C语言中,合法的长整型常数是()。
A.0.123456B.4962717C.9LD.5.321e2
64.下列叙述中正确的是()。
A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
B.线性表的链式存储结构与顺序存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挂车租出合同6篇
- 场地有偿使用合同7篇
- 公寓式房屋转租合同
- 广告制作安装合同书
- 临街商铺租赁合同
- 工程降水分包合同
- 土地利用规划的制定与执行指导书
- 员工租赁车辆协议
- 信封印刷合同6篇
- 围墙工程包工合同
- 消毒供应中心礼仪培训
- 微信公众号运营步骤
- 2024年河南省中职对口升学高考语文试题真题(解析版)
- 2023年贵州贵州贵安发展集团有限公司招聘笔试真题
- DB37T 4614.2-2023“爱山东”政务服务平台移动端 第2部分:运营管理规范
- 初中数学新课程标准(2024年版)
- 《马诗》教学课件新课学习
- 吊罐法掘天井安全技术操作规程(4篇)
- 2024年高考语文复习:酬和类古代诗歌阅读 专项练习题汇编(含答案解析)
- GB/T 36547-2024电化学储能电站接入电网技术规定
- 医疗废物管理条例
评论
0/150
提交评论