admin 管理员组文章数量: 1086019
2024年12月30日发(作者:周期函数的傅里叶变换公式)
第一章
1、一个C程序可能出现的错误有(A)
A,以上都包括
B,逻辑错误
C,运行错误
D,语法错误
2、C程序中一般可以包含几个函数(D)
A.1个
B.多个
C.0个
D.至少一个
3.C语言属于程序设计语言的哪个类别(B)
A.机器语言
B.高级语言
C.面向对象语言
D.汇编语言
4.以下关于C语言描述错误的是(B)
A.一个C程序总是从main函数开始执行
B.一个C程序可以包含多个main函数
C.每个语句的最后必须有一个分号
D.C语言的注释符是以"/*"开始并以"*/"结束
1 / 35
5、在调试过程中,逻辑错误是指(C)
A.所书写的语句,不符合C的语法。
B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错
误。
C.程序的运行结果不符合题目要求。
D.在exe文件的执行过程中,产生运行异常。
第二章
1、16位的二进制数可以表示的整数的范围是(C)
A.[-32768,32768]
B.[-32767,32768]
C.[-32768,32767]
D.[-32767,32767]
2、C语言中的实型数据包括(A)
和double
和float
和char
和double
3、以下不合法的字符常量是(C)
A.'2'
B.'A'
C.'ab'
2 / 35
D.'n'
4、在以下各组标识符中,均是合法的C语言标识符是(A)
,A_4d,_student,xyz_abc
,12-a,a_b,ab5.x
C.A_4d,_student,xyz_abc,if
,a_b,union,scan
5、若有定义:chara;intb;floatc;doubled;
则表达式a*b+d-c值的类型为(A)
6、类型修饰符unsigned不能修饰(D)
t
7、若有定义:doublex=1,y;
执行语句,则y的值是(B)
A,1
B,2.0
3 / 35
C,2
D,2.5
8、设inta=1,b=2;以下选项中不正确的语句是(B)
A.a=a+b
B.a*3=3
C.a+=3
D.a/=1
9、在C语言中,要求参加运算的数必须是整数的运算符是(C)
A.*
B./
C.%
D.++
10、设有定义:inta=7;floatx=2.5,y=4.7;
则表达式的值是(D)
A,3.5
B,2.75
C,0.0
D,2.5
第三章
1、执行以下程序后k的值是(C)
inti,j=10,k=0;
4 / 35
for(i=0;i<=j;i++)
{k=i+j;j--;}
A.9
B.8
C.10
D.11
2、2、设inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为
(C)A.3
B.1
C.2
D.0
3、表示y在(-∞,3]和[23,+∞)范围内为真的表达式为(A)
A.(y<=3)||(y>=23)
C.(y<3)||(y>23)
C.(y<=3)&&(y>=23)
D.(y<3)&&(y>23)
4、设有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值
是(D)voidmain()
{ints=0,a=1,n;
scanf("%d",&n);
do
{s=s+1;
5 / 35
a=a-2;
}while(a!=n);
printf("%d",s);
}
A.-5
B.0
C.-1
D.-3
5、对下面程序段,描述正确的是(D)
for(t=1;t<=100;t++)
{scanf("%d",&x);
if(x<0)continue;
printf("%d",x);
}
A.当x>=0时,什么也不输出
函数永远也不执行
C.当x<0时,整个循环结束
D.最多允许输出100个非负整数
6、已知intx=10,y=20,z=30;
则执行以下语句后x、y、z的值是(A)
if(x>y)
6 / 35
z=x;
x=y;
y=z;
A.x=20,y=30,z=30
B.x=20,y=30,z=10
C.x=20,y=30,z=20
D.x=10,y=20,z=30
7、设有声明语句:inta=1,b=0;
则执行以下语句后输出结果为(A)
switch(a)
{case1:
switch(b)
{case0:printf("**0**");break;
case1:printf("**1**");break;
}
case2:printf("**2**");break;
}
A.**0****2**
B.有语法错误
C.**0****1****2**
D.**0**
7 / 35
8、以下程序段的输出结果是(B)
intx=5;
if(x--<5)printf("%d",x);
elseprintf("%d",x++);
A.6
B.4
C.5
D.3
9、算法描述可以有多种表达方法,下面(C)方法不可以描述算法
A.自然语言
B.伪代码
C.机器语言
D.N-S图
10、for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是(C)A.2
B.8
C.3
D.9
第四章
1、包含标准库函数scanf声明的头文件是(B)
.h
.h
8 / 35
.h
.h
2、以下关于函数的叙述中正确的是(C)
A.C语言程序将从源程序中第一个函数开始执行
B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
可作为用户标识符,用以定义任意一个函数
3、以下正确的函数定义是(A)
fun(intx,inty){doublez;z=x+y;returnz;}fun(intx,inty){z=x+y;retur
nz;}
(x,y){intx,y;doublez;z=x+y;returnz;}
(intx,y){intz;returnz;}
4、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是
(D)A.地址传递
B.由用户指定传递方式
C.由实参传给形参,再由形参传回实参
D.单向值传递
5、以下正确的描述是(A)
A.函数的定义不可以嵌套,但函数的调用可以嵌套
B.函数的定义可以嵌套,但函数的调用不可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可嵌套
9 / 35
6、以下关于函数的叙述中不正确的是(C)
A.C程序是函数的集合,包括标准库函数和用户自定义函数
B.在C语言程序中,函数的定义不能嵌套
C.在C语言程序中,被调用的函数必须在main函数中定义
D.在C语言程序中,函数的调用可以嵌套
7、下列程序的运行结果是(D)
#include
voidfun();
intmain()
{
inta=10;
fun();
printf("]",a);
return0;
}
voidfun()
{
inta=20;
printf("]",a);
}
A,2020
10 / 35
B,1020
C,1010
D,2010
8、下列程序的运行结果是(D)
#include
intfun1(intx);
voidfun2();
intx=5;
intmain()
{
intx=1;
x=fun1(x);
printf("%d",x);
return0;
}
intfun1(intx)
{
x++;
fun2();
returnx;
}
11 / 35
voidfun2()
{
x++;
}
A.7
B.5
C.6
D.2
9、以下不正确的说法是(C)
A.在函数内定义的变量只在本函数范围内可以使用
B.形式参数是局部变量
C.在主函数内定义的变量可在其余函数中通用
D.在不同函数中可以使用相同名字的变量
10、下列程序的运行结果是()
#include
voidfun();
inta=5;
intmain()
{
inta=10;
fun();
12 / 35
printf("]",a);
return0;
}
voidfun()
{
a=a+5;
printf("]",a);
}
A.55
B.105
C.510
D.1010
第五章
1、利用冒泡排序得到升序排列,每一趟中从前到后遍历数组,将相邻两个
数作比较,如果前面的数小于后面的数,则(C)。
A.将当前数据后移
B.交换两个数的位置
C.不做操作
D.将当前数据前移
2、在定义intm[][3]={1,2,3,4,5,6};后,m[1][0]的值是(C)。
A.2
13 / 35
B.1
C.4
D.5
3、若给出以下定义:
charx[]="abcdefg";
chary[]={'a','b','c','d','e','f','g'};
则正确的叙述为(C)。
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
4、函数调用语句为:
inta[10],maxnum;
…
maxnum=max(a);
函数定义首部应为(B)。
max(intb[])
(intb[])
(inta)
(intb)
5、若有定义:intb[3][4]={0};则下述正确的是(D)。
14 / 35
A.没有元素可得初值0
B.数组b中各元素可得初值但值不一定为0
C.此定义语句不正确.
D.数组b中各元素均为0
6.C语言中,由固定数目的同类型的变量按一定顺序排列而构成的是
(A)。
A.数组
B.结构体
C.链表
D.队列
7、冒泡排序中,若有n个数,第一趟最多需要比较(C)次。
A.n
B.2(n-1)
C.n-1
D.2n
8.当数据已知的情况下,可以在定义数组时,对数组进行初始化,但不可
(A)。
A.在方括号中写入变量表达式
B.对数组元素赋同一初值
C.对部分元素赋初值
D.对全部元素赋初值
15 / 35
9、数组元素下标可从(0)开始。
A.用户指定
B.1
C.任意自然数
D.0
10、若不允许函数修改数组元素,则可以用(A)限定符作为数组参数的前
缀,这样数组元素就成为函数中的常量。
e
第六章
1、在16位系统中,定义以下结构体类型
structs
{
inta;
charb;
floatf;
};
则语句printf("%d",sizeof(structs))的输出结果为(B)。
A.4
16 / 35
B.7
C.3
D.6
2、
以下选项中不能正确把cl定义成结构体变量的是(B)。
color
{intred;
intgreen;
intblue;
}cl;
colorcl
{intred;
intgreen;
intblue;
};
{intred;
intgreen;
intblue;
}c1;
fstruct
17 / 35
{intred;
intgreen;
intblue;
}COLOR;
COLORcl;
3、结构体变量整体作函数参数时,以下说法正确的是(D)。
A.以上说法都不对
B.结构体变量整体不能做形参
C.结构体变量整体不能做实参
D.实参结构体变量和形参结构体变量的类型应当一致
4、已知字符'0'的ASCII码为十六进制的30H,下面程序的输出是(D)。
voidmain()
{union{unsignedcharc;
unsignedinti[4];
}z;
z.i[0]=0x39;
z.i[1]=0x36;
printf("%cn",z.c);}
A.3
B.0
C.6
18 / 35
D.9
5、在下面的叙述中,不正确的是(A)。
A.枚举常量的值可以是整数或字符串
B.枚举变量只能取对应枚举类型的枚举常量表中的元素
C.可以在定义枚举类型时对枚举常量进行指定表示的值
D.枚举常量表中的元素有先后次序,可以进行比较
第七章
1、程序编译后,对变量的访问时通过(B)来进行的。
A.变量名
B.地址
C.文件
D.函数
2、若int*p[4],则p的含义是(A)。
A.指针数组
B.指向一维分数组的指针
C.整型变量
D.指向整型的指针
3、请正确的填充语句:voidmain(intargc,char
A.*argv[]
[]
19 / 35
D.**argv[]
4、inta[10],*p;则让p指向数组的首地址的是(C)。
A.*p=a
B.p=a[0]
C.p=&a[0]
D.a=p
5、inta[3][5],*p;
p=a[0];
则p++后的值代表了(D)。
A.第二行的首地址
B.第一个元素的首地址
C.第一个元素的值
D.第一行第二个元素的首地址
6、定义p为指向函数的指针变量,应该采用(D)方式。
*p(int*x);
(int*x);
(intx);
(*p)(intx);A))。
(
7、获取指针变量所指向的值,用的运算符是(B)。
A.&
20 / 35
B.*
C.%
D.!
8、系统根据(B)为变量分配内存单元。
A.大小
B.类型
C.名称
D.数据
9、程序编译后,对变量的访问时通过(D)来进行的。
A.文件
B.函数
C.变量名
D.地址
10、inta[5]={10,20,30,40,50},*p=a;
printf("%dn",*p+1);
结果是(C)。
A.10
B.20
C.11
D.21
第八章
21 / 35
1、将文件分为ASCII码文件和二进制码文件两种,是从文件的(C)来区分
的。
A.存盘方式
B.读写方式
C.编码方式
D.打开方式
2、文本文件在磁盘存放时,每个字符对应一个字节,用来存放(
A.字符
B.数字
D.二进制
3、文件操作流程中的最后一个步骤是(C)文件。
A.存储
B.读取
C.关闭
D.打开
4、文件的变量类型名是(D)。
22 / 35
C)码。
5、在fopen函数中,“rb”表示为输入打开一个(A)文件。
A.二进制
B.头文件
C.文本
D.目标文件
散乱的:
3、下列数据类型的精度由高到低的顺序是(B)
,double,int,long
,float,int,char
,long,double,float
,long,float,int
5、C语言中符号常量定义的关键字是(D)
e
6、表达式3.6-的值是(D)
A,4.3
B,4.8
C,3.3
D,3.8
23 / 35
7、以下选项中非法的表达式是(D)
A.0<=x<100
B.i=j==0
C.(char)(x<100)
D.x+1=x+1
8、若变量a为int类型,且其值为3,则执行表达式a+=a-=a*a后,a的值
是(C)A.-3
B.9
C.-12
D.6
9、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,
b的值为3,c的值2,正确的数据输入方式是(D)
A.132
B.1,3,2
C.a=1b=3c=2
D.a=1,b=3,c=2
10、函数putchar()可以向终端输出一个(B)
A.字符串
B.字符或字符型变量的值
C.整型变量的值.
D.实型变量的值
11、下列运算符中,优先级从高到低依次为(D)
24 / 35
A.&&!||
B.||&&!
C.&&||!
D.!&&||
11、表达式!x等效于(B)
A.x==1
B.x==0
C.x!=1
D.x!=0
13、以下程序的运行结果是(C)
voidmain()
{inta=0,b=1,c=0,d=20;
if(a)d=d-10;
elseif(!b)
if(!c)d=15;
elsed=25;
printf("%d",d);
}
(2.5分)
A.15
B.25
25 / 35
C.20
D.10
14、以下程序段的输出结果是(A)
intx=1,a=0,b=0;
switch(x)
{case0:b++;
case1:a++;
case2:a++;b++;
}
printf("a=%d,b=%dn",a,b);
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
15、设有如下程序,则程序的输出结果是(B)
intk=1,s=0;
while(s<10)
{s=s+k*k;k++;}
printf("%d",k);
A.3
B.4
26 / 35
C.5
D.6
16、以下程序段的输出结果是(C)
intk,n;
for(k=1;k<=5;k++)
{n=k*k;
if(n<10)continue;
elseprintf("%d",n);
}
A.149
B.1491625
C.1625
D.因循环终止,没有任何输出结果
17、以下正确的函数原型声明是(C)
fun(intx,inty)
fun(intx;inty)
fun(intx,inty);
fun(intx,y)
18、下列程序的输出结果是(C)
intfun(inta,intb,intc)
{c=a*b;
27 / 35
returnc;}
intmain()
{intc=5;
c=fun(2,3,c);
printf(“%dn”,c);
return0;
}
A.0
B.1
C.6
D.5
19、以下不正确的说法是,C语言规定(B)
A.实参可以是常量、变量或表达式
B.形参可以是常量、变量或表达式
C.实参可以是任意类型
D.实参应与其对应的形参类型一致
22、下列程序的运行结果是(C)
#include
voidfun(intx);
intmain()
{
28 / 35
fun(7);
printf("");
return0;}
voidfun(intx)
{
if(x/2>1)
fun(x/2);
printf("-",x);
}
A.35
B.27
C.37.
D.25
23、以下数组定义中,(D)是错误的
[7];
B.#defineN5
longb[N];
[5];
,d[n];
24、执行下面程序,输出结果是(B)
#include
29 / 35
voidmain()
{
inti,j=3,a[]={1,2,3,4,5,6,7,8,9,10};
for(i=0;i<5;i++)
a[i]=i*(i+1);
for(i=0;i<4;i++)
j+=a[i]*3;
printf("%d",j);
}
A.33
B.63
C.123
D.48
25、
执行下面程序,输出结果是(C)
#include
voidmain()
{
inti,j,k=0,a[3][3]={1,2,3,4,5,6};
for(i=0;i<3;i++)
for(j=0;i<3;j++)
30 / 35
k+=a[i][j];
printf("%d",k);
}
A.21
B.19
C.17
D.18
26、执行下面程序,输出结果是(B)
#include
voidmain()
{
inti,a[10]={0,1,2,3,4,5,6,7,8,9};
for(i=1;i<9;i++)
a[i]=a[i-1]+a[i+1];
printf("%d%d",a[5],a[7]);
}
A.1014
B.2035
C.812
D.2744
27、设有charstr[]="Shanghai";
31 / 35
则执行printf("%dn",strlen(strcpy(str,"Shanxi")));后的输出结果为(C)
A.14
aiShanxi
C.6
28、若有定义和语句:chars[10]=”abcd”;printf(“%sn”,s);则结果是(以下u
代表空格)(A)
A.输出abcd
B.输出a
C.输出abcduuuuuu
D.编译不通过
29、当定义一个结构体变量时,系统为它分配的内存空间是(D)
A.结构体中一个成员所需的内存容量
B.结构体中第一个成员所需的内存容量
C.结构体中占内存容量最大者所需的容量
D.结构体中各成员所需内存容量之和
30、根据下面的定义,能打印出字母P的语句是(C)
structperson
{charname[9];
intage;};
structpersonclasses[10]={"John",17,"Paul",19,"Mary",18,,16};
32 / 35
("%cn",classes[2].name);
("%cn",classes[2].name[1]);
("%cn",classes[1].name[0]);
("%cn",classes[1].name[1]);
31、设有以下语句
typedefstructS
{intg;
charh;}T;
则下面叙述中正确的是(B)
A.可以用S定义结构体变量
B.可以用T定义结构体变量.
C.S是struct类型的变量
D.T是structS类型的变量
32、有以下程序:
#includeunionpw
{inti;"Adam"charch[2];}a;
voidmain()
{[0]=13;
[1]=0;
printf("%dn",a.i);}
程序的输出结果是(A)
33 / 35
A.13
B.14
C.208
D.209
33、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
(D)A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
34、若有说明;int*p,m=5,n;以下正确的程序段的是(D)
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
("%d",&n);*p=n;
D.p=&n;*p=m;
35、对二维数组inta[3][4]来说,第i行第j列的元素值可以用(C)来表示
A.*(a+i)+j
B.a[i]+j
C.*(*(a+i)+j)
D.&a[i][j]
36、inta[5]={10,20,30,40,50},*p=&a[2];
printf("%dn",*p+1);
结果是(B)
34 / 35
A.10
B.31
C.20
D.21
37、程序段char*s="abcde";s+=2;printf("%s",s);的运行结果是(A)
B.c
.
38、标准库函数fgets(s,n,f)的功能是(B)
A.从文件f中读取长度为n的字符串存入指针s所指的内存
B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C.从文件f中读取n个字符串存入指针s所指的内存
D.从文件s中读取长度为n-1的字符串存入指针f所指的内存
40、在C中,如果要打开C盘ccw目录下,名为“”的二进制文件用
于读和追加写,则调用打开文件函数的格式为(D)
("c:","ab")
("c:","ab+")
("c:","wb+")
("c:","ab+")
35 / 35
版权声明:本文标题:C语言程序设计期末考试选择题题库 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735629040a1682302.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论