版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、选择题(每题1分,共40分)
1.以下叙述中正确的是(CI
(A)用C程序实现的算法必须要有输入和输出操作
(B)用C程序实现的算法可以没有输出但必须要有输入
(C)用C程序实现的算法可以没有输入但必须要有输出
(D)用C程序实现的算法可以既没有输入也没有输出
2.以下叙述中错误的是(CX
(A)对于double类型数组,不可以直接用数组名又擞组进行整体输入或输出
(B)数组名代表的是数组所占存储区的首地址其值不可改变
(C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界”的出错信息
(D)可以通过赋初值的方式确定数组元素的个数
3.以下叙述中错误的是(AX
(A)用户所定义的标识符允许使用关键字
(B)用户所定义的标识符应尽量做到"见名知意"
(C)用户所定义的标识符必须以字母或下划线开头
(D)用户定义的标识符中,大、4肖字母代表不同标识
4.若有语句:char*line[5];,以下叙述中正确的是(A工
(A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
(B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
(C)定义line是一个指针数组,语句中的*号称为间址运算符
(D)定义line是一个指向字符型函数的指针
5.以下不能正确计算代数式;s/g)值的C语言表达式是(A1
(A)l/3*sin(l/2)*sin(l/2)(B)sin(0.5)*sin(0.5)/3
(C)pow(sin(0.5),2)/3(D)l/3.0*pow(sin(1.0/2),2)
6.以下叙述中错误的是(C工
(A)C语言中对二进制文件的访问速度比文本文件快
(B)C语言中,随机文件以二进制代码形式存储数据
(C)语句FILEfp;定义了一个名为fp的文件指针
(D)C语言中的文本文件以ASCII码形式存储数据
7.以下叙述中正确的是(DX
(A)C语言中的文件是流式文件,因此只能顺序存取数据
(B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
(C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,/能读到第1个数据
(D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
8.若有定义:intw[3][5];,则以下不能正确表示该数组元素的表达式是(B1
(A)*(*w+3)
(B)*(w+l)⑷
(C)*(*(w+l))
(D)*(&w[O][O]+l)
9.若有定义语句:intk[2][3]/pk[3];,则以下语句中正确的是(B\
(A)pk=k;
(B)pk[0]=&k[l][2];
(C)pk=k[O];
(D)pk[l]=k;
10.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是(D工
(A)#defineN10
inta[N];
(B)#definen5
inta[2*n];
(C)inta[5+5];
(D)intn=10,a[n];
11.有以下程序
main()
(
chars[]={"aeiou"},*ps;
ps=s;
printf("%c\nn,*ps+4);
)
程序运行后的输出结果是(B1
(A)a
(B)e
(C)u
(D)元素s[4]的地址
12.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是
(A1
(A)while((ch=getchar())!=,N')printf("%c",ch);
(B)while(ch=getchar()!=,N,)printf("%c",ch);
(C)whileich=getchar()=='N')printf{"%c"/ch);
(D)while((ch=getchar())=='N')printf("%c'/ch);
13.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为(B工
(A)EOF
(B)非0值
(C)0
(D)NULL
14.有以下程序
main()
(
inty=10;
while(y--);printf("y=%d\n',y);
)
程序执行后的输出结果是(B1
(A)y=0
(B)y=-l
(C)y=l
(D)while构成无限循环
15.以下叙述中错误的是(A\
(A)可以通过typede储加新的类型
(B)可以月typedef将己存在的类型用T新的名字来代表
(C)用typedef定义新的类型名后,原有类型名仍有效
(D)用typedef可以为各种类型起别名,但不能为变量起别名
16.以下关于简单程序设计的步骤和顺序的说法中正确的是(B1
(A)确定算法后,整理并写出文档,最后进行编码和上机调试
(B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档
(C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档
(D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构
17.下列叙述中正确的是(DX
(A)软件测试应该由程序开发者来完成
(B)程序经调试后一般不需要再测试
(C)软件维护只包括对程序代码的维护
(D)以上三种说法都不对
18.下列选项中不属于结构化程序设计方法的是(D%
(A)自顶向下
(B)逐步求精
(C)模块化
(D)可复用
19.设有以下语句
inta=l,b=2,c;
c=aA(b<<2);
执行后的值为(D1
(A)6
(B)7
(C)8
(D)9
20.若有代数式,|胪+/|(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言
表达式是(C工
(A)sqrt(abs(nAx+eAx))
(B)sqrt(fabs(pow(n,x)+pow(x,e)))
(C)sqrt(fabs(pow(n,x)+exp(x)))
(D)sqrt(fabs(pow(x,n)+exp(x)))
21.有以下程序,其中%u表示按无符号整数输出
main()
unsignedintx=0xFFFF;/*x的初值为十八进制数*/
printf("%u\n\x);
)
程序运行后的输出结果是(BX
(A)-l
(B)65535
(C)32767
(D)OxFFFF
22.以下选项中,当x为大于1的奇数时,值为0的表达式(D\
(A)x%2==l(B)x/2(C)x%2!=0(D)x%2==0
23.以下合法的字符型常量是(AI
(A)'\xl3'
(B)'\018'
(C)"65"
(D)"\n"
24.已知大写字母A的ASCH码是65/与字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小
写字母的语句是(D1
(A)c=(c-A')%26+'a'
(B)c=c+32
(C)c=c-'A'+'a'
(D)c=('A'+c)%26-'a'
25.已知字符'A'的ASCII代码值是65,字符变量cl的值是'A',c2的值是'D'。执行语句printf("%d,%d",cl,c2-
2);后,输出结果是(C1
(A)A,B(B)A,68(C)65,66(D)65,68
26.以下正确的字符串常量是(DI
(A)"\\\"
(B)'abc'
(C)OlympicGames
(D)""
27.有以下函数
intaaa(char*s)
{
char*t=s;
while(*t++);
t--;
return(t-s);
)
以下关于aaa函数的功能叙述正确的是(A\
(A)求字符串s的长度
(B)比较两个串的大小
(C)将串s复制到串t
(D)求字符串s所占字节数
28.若有定义语句:inta[2][3]/p[3];,则以下语句中正确的是(C工
(A)p=a;
(B)p[O]=a;
(C)p[0]=&a[l][2];
(D)p[l]=&a;
29.以下关于字符串的叙述中正确的是(D\
(A)C语言中有字符串类型的常量和变量
(B)两个字符串中的字符个数相同时才能进行字符串大小的比较
(C)可以用关系运算符对字符串的大小进行比较
(D)空串一定比空格打头的字符串小
30.以下选项中不属于字符常量的是(B\
(A),C
(B)'C"
(C)'\xCC
(D)'\072'
31.以下定义语句中正确的是(B\
(A)inta=b=0;
(B)charA=65+l,b='b';
(C)floata=l,*b=&a/*c=&b;
(D)doublea=O.O;b=l.l;
32.以下错误的定义语句是(C工
(A)intx[][3]={{0},{l}f{l,2,3});
(B)intx[4][3]={{123},{123},{123},{1,2,3}};
(C)intx[4][]={{123},{123},{123},{123}};
(D)intx[][3]={l,2,3,4);
33.若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是(D\
(A)a[2][!l]
(B)a[2][3]
(C)a[0][3]
(D)a[l>2][!l]
34.以下叙述中错误的是(B\
(A)gets函数用于从终端读入字符串
(B)getchar函数用于从磁盘文件读入字符
(C)fputs函数用于把字符串输出到文件
(D)fwrite函数用于以二进制形式输出数据到文件
35.有以下程序
#include<stdio.h>
main()
intx=Ly=2,z=3;
if(x>y)
if(y<z)printfC%d\++z);
elseprintf("%d",++y);
printf("%d\n",x++);
)
程序的运行结果是(D1
(A)331
(B)41
(C)2
(D)l
36.下面的函数调用语句中func函数的实参个数是(AI
func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8)));
(A)3
(B)4
(C)5
(D)8
37.若有定义语句:chars[10]="1234567\0\0";,贝!1strlen(s)的值是(A\
(A)7
(B)8
(C)9
(D)10
38.以下关于宏的叙述中正确的是(C1
(A)宏名必须用大写字母表示
(B)宏定义必须位于源程序中所有语句之前
(C)宏替换没有数据类型限制
(D)宏调用比函数调用耗费时间
39.下列选项中,能够满足"若字符串si等于字符串s2,则执行ST”要求的是:A工
(A)if(strcmp(s2,sl)==0)ST;
(B)if(sl==s2)ST;
(C)if(strcpy(sl,s2)==1)ST;
(D)if(sl-s2==0)ST;
40.若有以下语句
typedefstructS
{intg;charh;}T;
以下叙述中正确的是(B\
(A)可用S定义结构体变量
(B)可用T定义结构体变量
(C)S是struct类型的变量
(D)T是structS类型的变量
1.下列叙述中错误的是(A\
(A)一个(:语言程序只能实现一种算法
(B)C程序可以由多个程序文件组成
(C)C程序可以由一个或多个函数组成
(D)一个C函数可以单独作为TC程序文件存在
2.设有如下说明
typedefstructST
{longa;ntb;charc[2];}NEW;
则下面叙述中正确的是(C1
(A)以上的说明形式^法
(B)ST是一个结构体类型
(C)NEW是一个结构体类型
(D)NEW是一个结构体变量
3.若有以下说明和定义
uniondt
{inta;charb;doublec;}data;
以下叙述中错误的是(CX
(A)data的每个成员起始地址都相同
(B)变量data所占内存字节数与成员(:所占字菅数相等
程序段:输出结果为
(C)data.a=5;printf("%f\n",data.c);5.000000
(D)data可以作为函数的实参
4.以下关于函数的叙述中正确的是(B\
(A)每个函数都可以被其它函数调用(包括main函数)
(B)每个函数都可以被单独编译
(C)每个函数都可以单独运行
(D)在一个函数内部可以定义另一个函数
5.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是
(DX
(A)k%2(B)k%2==l(C)(k%2)!=0(D)!k%2==l
6.以下能正确定义且赋初值的语句是(B1
(A)intnl=n2=10;(B)charc=32;(C)floatf=f+l.l;(D)doublex=12.3E2.5;
7.设有定义:intk=l,m=2;floatf=7;,则以卜选项中错误的表达式是(CX
(A)k=k>=k(B)-k++(C)k%int(f)(D)k>=f>=m
8.有以下程序段
intn,t=l,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!=n);
为使此程序段不陷入死循环,从健盘输入的数据应该是(D1
(A)任意正奇数(B)任意负偶数(C)任意正偶数(D)任意负奇数
9.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(BI
(A)大写字母(B)连接符(C)数字字符(D)下划线
10.以下不合法的用户标识符是(CX
(A)j2_KEY(B)Double(C)4d(D)8
11.设变量X和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C1
(A)if(x++);
(B)if(x>y&&y!=O);
(C)if(x>y)x--
elsey++;
(D)if(y<0){;}
elsex++;
12.在C语言中,函数返回值的类型最终取决于(AX
(A)函数定义时在函数首部所说明的函数类型
(B)retum语句中表达式值的类型
(C)调用函数时主函数所传递的实参类型
(D)函数定义时形参的类型
13.有以下函数
intfun(charAs)
{
char*t=s;
while(*t++);
return(t-s);
)
该函数的功能是(CI
(A)比较两个字符的大小
(B)计算s所指字符串占用内存字节的个数
(C)计算s所指字符串的长度
(D)将s所指字符串复制到字符串t中
14.C语言源程序名的后缀是(B1
(A).exe
(B).C
(C).obj
(D).cp
15.以卜选项中,合法的一组C语言数值常量是(BX
(A)028(B)12.(C).177(D)0x8A
.5e-3OXa234cl.510,000
-Oxf4.5e0Oabc3.e5
16.设有条件表达式:(EXP)?i++;j—,则以下表达式中(EXP)完全等价的是(B\
(A)(EXP==0)
(B)(EXP!=0)
(C)(EXP==1)
(D)(EXP!=1)
17.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表
达式是(BI
(A)isupper(c)
(C),A'<=c&&c<='Z,
(D)c<=(2-32)&&('a'-32)<=c
18.若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是(B
(A)a[0J[4]
(B)a[l][3]
(C)a[0][3]
(D)a[l][4]
19.当变量c的值不为2、4、6时,值也为"真"的表达式是(BX
(A)(c==2)||(c==4)||(c==6)
(B)(c>=2&&c<=6)||(c!=3)||(c!=5)
(C)(c>=2&&c<=6)&&!(c%2)
(D)(c>=2&&c<=6)&&(c%2!=l)
20.数字字符。的ASCH值为48,若有以下程序
main()
(
chara='l',b='2,;
printf("%c//b++);printf("%d\n",b-a);
)
程序运行后的输出结果是(C1
(A)3,2(B)50,2(C)2,2(D)2,50
21.有以下程序
main()
{
inta[]={l,2,3A5,6,7,8/9/0)/*p;
for(p=a;p<a+10;p++)printf("%d,\*p);
)
程序运行后的输出结果是(A1
(A)L234,5,6,7,8,90
(B)2345678,9,10,L
(C)0,L234>6,7,8,9,
(D)1,LLLLLLLLL
22.有以下程序
main()
{intc=35;printf("%d\n",c&c);}
程序运行后的输出结果是(C\
(A)0
(B)70
(C)35
(D)l
23.有以下程序
#include<stdio.h>
main()
inta[]={l,2,3,4},y/p=&a[3];
y=*p;
printf("y=%d\n",y);
)
程序的运行结果是(DI
(A)y=0
(B)y=l
(C)y=2
(D)y=3
24.设有如下程序段
chars[20]="Beijing",*p;p=s;
则执行p=s;语句后,以下叙述正确的是(A工
(A)可以用*p表示s[0]
(B)s数组中元素的个数和p所指字符串长度相等
(C)s和p都是指针变量
(D)数组s中的内容和指针变量p中的内容相同
25.以下叙述中错误的是(CX
(A)在程序中凡是以开始的语句行都是预处理命令行
(B)预处理命令行的最后不能以分号表示结束
(C)#defineMAX是合法的宏定义命令行
(D)C程序对预处理命令行的处理是在程序执行之前进行的
26.以下选项中不能作为C语言合法常量的是(A\
(A)'cd'
(B)O.le+6
(C)"\a"
(D)'\011'
27.若有表达式(w)?(・・x):(++y),则其中与w等价的表达式是(D\
(A)w==l
(B)w==0
(C)w!=l
(D)w!=0
28.若有定义语句:doublex[5]={1.020,30,4.050},*p=x;则错误引用x数组元素的是(B\
(A)*p
(B)x[5]
(C)*(p+1)
(D)*x
29.以下叙述中错误的是(B\
(A)用户定义的函数中可以没有return语句
(B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
(C)用户定义的函数中若没有return语句,则应当定义函数为void类型
(D)函数的return语句中可以没有表达式
30.以下选项中,能用作数据常量的是(D1
(A)0115
(B)0118
(C)1.5el.5
(D)115L
31.若有定义语句:doublex,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是(C
(A)scanf("%f%f",x,y);
(B)scanf(;
(C)scanf("%lf%le',px,py);
(D)scanf("%lf%lf",x,y);
32.有以下程序
#include<stdio.h>
main()
(
intx;
scanf("%d",&x);
if(x<=3);
elseif(x!=10)printf("%d\n",x);
}
程序运行时,输入的值在哪个范围才会有输出结果(B\
(A)不等于10的整数
(B)大于3且不等于10的整数
(C)大于3或等于10的整数
(D)小于3的整数
33.设有定义:chars[81];inti=10;,以下不能将一行(不超过80个字符)带有空格的字符串真确读入的语句或语句
组是(CI
(A)gets(s)
(B)while((s[i++]=getcharO)!='\n');s='\0';
(C)scanf("%s",s);
(D)do(scanf("%c",8ts);}while(s[i++]!='\n');s="\0';
34.有以下程序
#include<stdio.h>
intfun{intxjnty}
{
if(x==y)return(x);
elsereturen((x+y)/2)
)
main()
{
inta=4,b=5,c=6;
printf("%d\n"/fun(2*a,fun(b,c)));
)
程序运行后的输出结果是(BI
(A)3
(B)6
(C)8
(D)12
35.下列函数的功能是(A1
fun(char*a,char*b)
{while((*b=*a)!='\0'){a++,b++;}}
(A)将a所指字符串赋给b所指空间
(B)使指针b指向a所指字符串
(C)将a所指字符串和b所指字符串进行匕匕较
(D)检查a和b所指字符串中是否有‘\0'
36.卜面结构体的定义语句中,错误的是(BI
(A)structord{intx;inty;intz;};structorda;
(B)structord{intx;inty;intz;}structorda;
(C)structord{intx;inty;intz;}a;
(D)struct{intx;inty;intz;}a;
37.下列关于C语言文件的叙述中正确的是(C1
(A)文件由一系列数据依次排列组成,只能构成二进制文件
(B)文件由结构序列组成,可以构成二进制文件或文本文件
(C)文件由数据序列组成,可以构成二进制文件或文本文件
(D)文件由字符序列组成,其类型只能是文本文件
38.下列定义数组的语句中,正确的是(B工
(A)intN=10;intx[N];
(B)#defineN10intx[N];
(C)intx[0..10];
(D)intx[];
39.下列选项中,能够正确定义数组的语句是(D\
(A)intnum[0..2008];
(B)intnum。;
(C)intN=2008;
intnum[N];
(D)#defineN2008
intnumlN]
40.设有定义doublea[10],*s=a;,一下能够代表数组元素a⑶的是(B\
(A)(*s)[3]
(B)*(s+3)
(O*s[3]
(D)*s+3
1.对于一个正常运行的C程序,以下叙述中正确的是(AX
(A)程序的执行总是从main函数开始,在main函数结束
(B)程序的执行总是从程序的第一个函数开始,在main函数结束
(C)程序的执行总是从main函数开始,在程序的最后一个函数中结束
(D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
2.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D\
(A)均占4个字节
(B)根据数据的大小来决定所占内存的字节数
(C)由用户自己定义
(D)由C语言编译系统决定
3.若因数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是1D\
(A)函数的实参和其对应的形参共占同一存储单元
(B)形参只是形式上的存在,不占用具体存储单元
(C)同名的实参和形参占同一存储单元
(D)函数的形参和实参分别占用不同的存储单元
4.以下叙述中错误的是(C\
(A)改变函数形参的值,不会改变对应实参的值
(B)函数可以返回地址值
(C)可以给指针变量赋一个整数作为地址值
(D)当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL
5.设有定义:charp口二{‘1','2','3'-q=p;,以下不能计算出一个char型数据所占字节数的表达式是(A\
(A)sizeof(p)
(B)sizeof(char)
(C)sizeof(*q)
(D)sizeof(p[0])
6.当用户要求输入的字符串中含有空格时,应使用的输入函数是(C\
(A)scanf()
(B)getchar()
(C)gets()
(D)getc()
7.若函数中有定义语句:intk;,则(B\
(A)系统将自动给k赋初值0
(B)这时k中值无定义
(C)系统将自动给k赋初值-1
(D)这时k中无任何值
8.设有定义:intx=2;,以下表达式中,值不为6的是(D\
(A)x*=x+l
(B)x++/2*x
(C)x*=(l+x)
(D)2*xx+=2
9.表达式:(int)((double)9/2)Y9)%2的值是(B\
(A)0
(B)3
(C)4
(D)5
10.设有定义:inta=l,b=2,c=3;,以下语句中执行效果与其它三个不同的是(C\
(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;}
11.以下选项中,能用作用户标识符的是(CI
(A)void
(B)8_8
(C)_0,
(D)unsigned
12.有以下定义语句,编译时会出现编译错误的是(C1
(A)chara='a';
(B)chara='\n';
(C)chara='aa';
(D)chara='\x2d';
13.)若有定义语句:inta[4][10]/p/q[4];n0<i<4,则错误的赋值是(A\
(A)p=a
(B)q[i]=a[i]
(C)p=a[i]
(D)p=&a[2][l]
14.以下叙述中正确的是
(A)C程序中的注释只能出现在程序的开始位置和语句的后面(C工
(B)C程序书写格式严格,要求一行内只能写一个语句
(C)程序书写格式自由,一个语句可以写在多行上
(D)用C语言编写的程序只能放在一个程序文件中
15.设变量已正确定义并赋值,以下正确的表达式是(C)
(A)x=y*5=x+z
(B)int(15.8%5)
(C)x=y+z+5,++y
(D)x=25%5.0
16.有以下程序段
charch;intk;ch="a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCH十进制代码为97,贝励行上述程序段后输出结果是(D
(A)因变量类型与格式描述符的类型不匹配喻出无定值
(B)输出项与格式描述符个数不符,输出为零值或不定值
(C)a,97r12k=12
(D)a,97,k=12
17.计算机能直接执行的程序是(D\
(A)源程序
(B)目
(C)汇编程序
(D)可执行程序
18.以下选项中正确的定义语句是(C\
(A)doublea;b;
(B)doublea=b=7;
(C)doublea=7,b=7;
(D)double,a,b;
19.C源程序中不能表示的数制是(AX
(A)二进制
(B)八进制
(C)十进制
(D)十六进制
20.若有定义语句:intm[J={5A3,2,l},i=4;.则下面对m数组兀素的引用中错误的是
(C\
(A)m[-i]
(B)m[2*2]
(C)m[m[0]]
(D)m[m[i]]
21.执行以下程序段后,w的值为(CX
intw='A',x=14,y=15;
w=((x||y)&&(w<-a'));
(A)-1
(B)NULL
(C)l
(D)0
22.以下不合法的字符常量是(AX
(A)'\018,
(B)V
(C)'W
(D)'\xcc'
23.以下能正确定义字符串的语句是(D\
(A)charstr[]={'\064'};
(B)charstr="\x43n;
(C)charstr="";
(D)charstr[]="\O";
24.若要求从键盘读入含有空格字符的字符串,应使用函数(B工
(A)getc()
(B)gets()
(C)getchar()
(D)scanf()
25.已定义以下函数
intfun(int*p)
{return*p;}
fun函数返回值是(B\
(A)不确定的值
(B)一个整数
(C)形参p中存放的值
(D)形参p的地址值
26.若有以下函数首部
intfun(doublex[10],int*n)
则下面针对此函数的函数声明语句中正确的是(D工
(A)intfun(doublex,int*n);
(B)intfun(double,int);
(C)intfun(double*x,intn);
(D)intfun(double*,int*);
27.以下语句中存在语法错误的是(AX
(A)charss[6][20];ss[l]="right?";
(B)charss[][20]={"right?");
(C)char*ss[6];ss[l]="right?";
(D)char*ss[]={"right?");
28.设有以下语句
typedefstructTT
(
chare;
inta[4];
}CIN;
则下面叙述中正确的是(C1
(A)可以用TT定义结构体变量
(B)TT是struct类型的变量
(C)可以用QN定义结构体变量
(D)CIN是structTT类型的变量
29.已有定义:chara[]="xyz",b[]={'x'/y/'z');f以下叙述中正确的是(C\
(A)数组a和b的长度相同
(B)a数组长度小于b数组长度
(C)a数组长度大于b数组长度
(D)上述说法都不对
30.有以下程序
#defineP3
voidF(intx){return(P*x*x);}
main()
{printf("%d\n;F(3+5));}
程序运行后的输出结果是(D\
(A)192
(B)29
(C)25
(D)编译出错
31.以下叙述中正确的是(DX
(A)预处理命令行必须位于源文件的开头
(B)在源文件的一行上可以有多条预处理命令
(C)宏名必须用大写字母表示
(D)宏替换不占用程序的运行时间
32.以下语句或语句组中,能正确进行字符串赋值的是(D1
(A)char*sp;*sp="right!";
(B)chars[10];s="right!";
(C)chars[10];*s="right!";
(D)char*sp="right!";
33.有以下函数
fun(char*a,char*b)
(
while((*a!='\O,)&&(*b!='\O')&&(*a==*b))
{a++;b++;}
return(*a-Ab);
)
该函数的功能是(D工
(A)计算a和b所指字符串的长度之差
(B)将b所指字符串复制到a所指字符串中
(C)将b所指字符串连接到a所指字符串后面
(D)比较a和b所指字符串的大小
34.设有定义:inta=2,b=3,c=4;,则以下选项中值为。的表达式是(A\
A)(!a==l)&&{!b==O)
B)(a<b)&&!c||l
C)a&&b
D)a||(b+b)&&(c-a)
35.设变量已正确定义,则以下能正确计算f=n!的程序段是(D1
(A)f=0;
for(i=l;i<=n;i++)f*=i;
(B)f=l;
for(i=l;i<n;i++)f*=i;
(C)f=l;
for(i=n;i>l;i++)f*=i;
(D)f=l;
for(i=n;i>=2;i—)f*=i;
36.若有定义:intx=0,Ap=&x;,则语句printf("%d\n7p);的输出结果是(BX
(A)随机值
(B)0
(C)x的地址
(D)p的地址
37.设函数fun的定义形式为
voidfun(charch,floatx){...}
则以下对函数fun的调用语句中,正确的是(D工
(A)fun("abc",3.0);
(B)t=fun('D',16.5);
(C)fun('65',2.8);
(D)fun(32,32);
38.有以下程序
main()
(
charal='M',a2=m';
printf("%c\n';(al,a2));
)
以下叙述中正确的是(B\
(A)程序输出大写字母M
(B)程序输出小写字母m
(C)格式说明符不足,编译出错
(D)程序运行时产生出错信息
39.有以下程序段
typedefstructNODE
(
intnum;
structNODE*next;
}OLD;
以下叙述中正确的是(cX
(A)以上的说明形式^法
(B)NODE是一个结构体类型
(C)OLD是一个结构体类型
(D)OLD是一个结构体变量
40.若有定义语句
inta,b;
doublex;
则卜列选项中没有错误的是(CX
(A)
switch(x%2)
{
case0:a++;break;
case1:b++;break;
default:a++;b++;
)
(B)
switch((int)x/2.0)
{
case0:a++;break;
case1:b++;break;
default:a++;b++;
)
(C)
switch((int)x%2)
case0:a++;break;
case1:b++;break;
default:a++;b++;
)
(D)
switch((int)(x)%2)
case0.0:a++;break;
case1.0:b++;break;
default:a++;b++;
)
1.以下叙述中错误的是(D)
A)C语言源程序经编译后生成后缀为.obj的目标程序
B)(:程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C)C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
2.以下叙述中错误的是(D)
A)C程序必须由一个或一个以上的函数组成
B)函数调用可以作为一个独立的语句存在
C)若函数有返回值,必须通过return语句返回
D)函数形参的值也可以传回给对应的实参
3.以下叙述中错误的是(D)
A)C®J5中的#include¥D#define彳亍均不是C语句
B)除逗号运算秋卜,赋值运算符的优先级最低
C)(:程序中,j++;是赋值语句
D)C程序中,+、・、*、/、%号是算术运算符,可用于整型和实型数的运算
4.以下叙述中错误的是(C)
A)C语言是一种结构化程序设计语言
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计提倡模块化的设计方法
5.以下叙述中正确的是(C)
A)break语句只能用于switch语句体中
B)continue语句的作用是:使程序的执行流程1跳出包含它的所有循环
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
6.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素
出栈的顺序是(B工
A)12345ABCDE
B)EDCBA54321
C)ABCDE12345
D)54321EDCBA
7.在软件开发中,需求分析阶段可以使用的工具是(B\
A)N-5图
B)DFD图
C)PAD图
D)程序流程图
8.以下叙述中正确的是(C1
A)C程序的基本组成单位是语句
B)C程序中的每一行只能写一条语句
C)简单C语句必须以分号结束
D)C语句必须在一行内写完
9.以下选项中合法的标识符是(C)
A)l_l
B)1—1
C)_H
OL
IO.程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的输出结果是(A)
A)123.141593
B)123.141593
C)12,3.141593
D)123.1415930
11.若有定义语句:intx=10;,则表达式x・=x+x的值为(B)
A)-20
B)-10
C)0
D)10
12.以下程序段中,与语句:k=a>b?(b>c?l:O):O;功能相同的是(A)
A)if((a>b)&&(b>c))k=l;B)if((a>b)||(b>c)k=l;
elsek=0;elsek=0;
C)if(a<=b)k=0;D)if(a>b)k=l;
elseif(b<=c)k=l;elseif(b>c)k=l;
elsek=0;
13.下面是有关C语言字符数组的描述,其中错误的是(D)
A)不可以用赋值语句给字符数组名赋字符串
B)可以用输入语句把字符串整体输入给字符数组
C)字符数组中的内容不一定是字符串
D)字符数组只能存放字符串
14.设有定义:char*c,以下选项中能够使字符型指针c正确指向一个字符串的是(A)
A)charstr[]="string";c=str;
B)scanf('%s\c);
C)c=getchar();
D)*c=nstring";
15.若有以下程序段
intr=8;
printf("%d\n",r>>l);
输出结果是(C)
A)16
B)8
C)4
D)2
16.若有定义:doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是(C)
A)a=a++,i++
B)i=(a+ki<=(i+k)
C)i=a%ll
D)i=!A
17.若a是数值类型,则逻辑表达式(a==l)||(a!=l)的值是:(A)
A)1
B)0
C)2
D)不知道a的值,不能确定
18.下列语句中,正确的是(A)
A)char*s;s="Olympic";
B)chars[7];s="Olympic";
C)char*s;s={"Olympic"};
D)chars[7];s={"Olympic");
19.若有以下定义和语句(A)
charsl[10]="abed!",*s2="nl23\\";
printf("%d%d\n",strlen(sl),strlen(s2));
则输出结果是
A)55
B)105
C)107
D)58
20.以下选项中能表示合法常量的是(D)
A)整数:1,200
B)实数:1.5E2.0
C)字符斜杠:"V
D)字符串:"\007"
21.阅读以下程序
#include<stdio.h>
main()
{intcase;floatprintF;
printf("请输入2个数)
scanf("%d%f",&case,&printF);
printf("%d%f\n",case,printF);
)
该程序编译时产生错误,其出错原因是(A)
A)定义语句出错,case是关键字,不能用作用户自定义标识符
B)定义语句出错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无错,printf不能输出case的值
22.若变量已正确定义,在if(W)printf("%d\n';k);中,以下不可替代W的是(A)
A)a<>b+c
B)ch=getchar()
C)a==b+c
D)a++
23.以下程序段完全正确的是(C)
A)int*p;scanf("%d',&p);
B)int*p;scanf("%d",p);
C)intk,*p=&k;scanf("%d",p);
D)intk/p;*p=&k;scanf("%d\p);
24.若要定义一个具有5个元素的整型数组,以下错误的定义语句是(D)
A)inta[5]={0};
B)intb[]={O,O,OAO};
C)intc[2+3];
D)inti=5,d[i];
25.以下不能将s所指字符串正确复制到t所指存储空间的是(C)
A)while(*t=*s){t++fs++;}
B)for(i=0;t[i]=s[i];i++);
C)do{*t++=*s++;}while(*s);
D)for(i=0j=0;t[i++]=s[j++];);
26.以下关于结构化程序设计的叙述中正确的是(C)
A)一个结构化程序必须同时由顺序、分支、循环三种结构组成
B)结构化程序使用goto语句会很便捷
C)在C语言中,程序的模块化是利用函数实现的
D)由三种基本结构构成的程序只能解决小规模的问题
27.数据的存储结构是指(D)
A)存储在外存中的数据
B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式
D)数据的逻辑结构在计算机中的表示
28.下列对于软件测试的描述中正确的是(C)
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
29.下列描述中正确的是(D)
A)程序就是软件
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体,又是物理实体
D)软件是程序、数据与相关文档的集合
30.下列叙述中正确的是(D)
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
31.以下叙述中错误的是(C)
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
32.有以下程序段
intk=0,a=l/b=2,c=3;
k=a<b?b:a;k=k>c?c:k;
执行该程序段后,k的值是(B)
A)3
B)2
C)1
D)0
33.以下选项中与if(a==l)a=b;elsea++;语句功能不同的switch语句是:(B)
A)
switch(a)
(
casel:a=b;break;
default:a++;
)
B)
switch(a==l)
{
case0:a=b;break;
case1:a++;
)
C)switch(a)
{
default:a++;break;
casel:a=b;
)
D)switch(a==l)
{
casel:a=b;break;
case0:a++;
)
34.有以下程序
#include<stdio.h>
main()
(
charcl,c2;
cl='A'+'8'-,4,;
c2=,A,+,8,-,5,;
printf("%c,%d\n",cLc2);
)
已知字母A的ASCH码为65,程序运行后的输出结果是(A)
A)E,68
B)D,69
C)E,D
D)输出无定值
35.以下不能将s所指字符串正确复制到t所指存储空间的是(C)
A)while(*t=*s){t++,s++;}
B)for(i=0;t[i]=s[i];i++);
C)do{*t++=*s++;}while(*s);
D)for(i=0J=0;t[i++]=s[j++];);
36.有以下程序
main()
{
chars[]="rstuv
printf("%c\n",*s+2);
)
程序运行后的输出结果是(C)
A)tuv
B)字符t的ASCII值
C)t
D)出错
37.以下选项中正确的语句组是(D)
A)chars[];s="BOOK!n;
B)char*s;s={"BOOK!"};
C)chars[10];s="BOOK!
D)char*s;s="BOOK!
38.设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是(C)
A)auto
B)register
C)static
D)auto或register
39.有以下程序
#include<stdio.h>
#definePT3.5;
#defineS(x)PT*x*x;
main()
{inta=l,b=2;printf("%4.1f\n",S(a+b));}程序运行后输出的结果是(D)
A)14.0
B)31.5
C)7.5
D)程序有错无输出结果
40.若有以下定义intx[10],*pt=x;则对x数组元素的正确应用是(B)
A)*&x[10]
B)*(x+3)
C)*(pt+10)
D)pt+3
1.下面叙述中错误的是(A)
A)软件测试的目的是发现错误并改正错误
B)对被调试的程序进行“错误定位"是程序调试的必要步骤
C)程序调试通常也称为Debug
D)软件测试应严格执行测试计划,排除测试的随意性
2.下列选项中不属于结构化程序设计原则的是(A)
A)可封装
B)自顶向下
C)模块化
D)逐步求精
3.设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是()
A)*p=*q;
B)p=q;
C)*p=&nl;
D)p=*q;
4.有以下程序
main()
{
inta[10]={1,2,3,4,5,67,8,9,10),*p=8ta[3],*q=p+2;
printf("%d\n"f*p+*q);
)
程序运行后的输出结果是(B)
A)16
B)10
C)8
D)6
5.有以下程序
#include<stdio.h>
main()
charcl='l;c2='2';
cl=getchar();
c2=getchar();
putchar(cl);
putchar(c2);
)
当运行时输入:a<回车》后,以下叙述正确的是(A)
A)变量cl被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量cl被赋予字符a,c2中仍是原有字符2
D)变量cl被赋予字符a,c2中将尢确定值
6.有以下程序
#include<string.h>
main()
(
charp[]={'a','b;'c'),q[10]={'a;'b;'c');
printff%d%d\n",strlen(p),strlen(q));
)
以下叙述中正确的是(B)
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定"旦q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
7.以下叙述中正确的是(D)
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
8.算法的空间复杂度是指(A)
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
。算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
9.已知字母A的ASCU代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的
表达式是(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江西交通职业技术学院高职单招笔试英语历年参考题库含答案解析
- 药品GMP规范实施考试题库及答案
- 药房药师案例分析题库及参考答案
- 血液学检验题库带答案
- 行政管理后勤保障高频考点题库及参考答案
- 西安航空职业技术学院单招职业技能测试题库及答案
- 证券行业面试测试题库带答案
- 贵医口腔招聘模拟试题题库及参考答案
- 输气工初级工题库带答案
- 遴选考试题库带答案
- 《国际商务英语综合教程(第四版)》全套教学课件
- 2025年山东职业病诊断医师考试职业性放射性疾病综合训练题库及答案
- 反恐防范宣传课件
- 肿瘤药物给药顺序及解毒剂
- 中石化存货管理制度
- 数字智慧方案5299丨华为业务变革框架及战略级项目管理
- 上海奉贤区区属国有企业招聘笔试题库2025
- 国网十八项反措(修订版)宣贯
- 2023版《思想道德与法治》说课课件
- 轨道列车司机(动车组司机)国家职业技能鉴定标准(2019年版)
- 标准居间合同书范本
评论
0/150
提交评论