C语言真题3Word下载.docx
《C语言真题3Word下载.docx》由会员分享,可在线阅读,更多相关《C语言真题3Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
![C语言真题3Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/31/ab98a53e-6345-4226-a532-bef1f328b066/ab98a53e-6345-4226-a532-bef1f328b0661.gif)
的值为"
真"
。
第10题(1分)
8
在C语言中,整型数据在内存中占2个字节。
━━━━━━━━━━━━━━━━
二、单项选择
共40题
(共计40分)
127
下列程序的输出结果是()。
main()
{
printf("
%d\n"
null);
}
(A).0
(B).变量无定义
(C).-1
(D).1
B
647
以下能对二维数组a进行正确初始化的语句是()。
(A).inta[2][]={{1,0,1},{5,2,3}};
(B).inta[][3]={{1,2,3},{4,5,6}};
(C).inta[2][4]={{1,2,3},{4,5},{6}};
(D).inta[][3]={{1,0,1}{},{1,1}};
564
在一个C程序中()。
(A).main函数必须出现在所有函数之前
(B).main函数可以在任何地方出现
(C).main函数必须出现在所有函数之后
(D).main函数必须出现在固定位置
715
若有说明:
inti,j=2,*p=&
i;
则能完成i=j赋值功能的语句是()。
(A).i=*p;
(B).*p=*&
j;
(C).i=&
(D).i=**p;
642
在C语言中,一维数组的定义方式为:
类型说明符数组名()。
(A).[常量表达式]
(B).[整型表达式]
(C).[整型常量]或[整型表达式]
(D).[整型常量]
C
576
设以下变量均为int类型,则值不等于7的表达式是()。
(A).(x=y=6,x+y,x+1)
(B).(x=y=6,x+y,y+1)
(C).(x=6,x+1,y=6,x+y)
(D).(y=6,y+1,x=y,x+1)
C
677
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
(A).函数调用可以作为独立的语句存在
(B).函数调用可以作为一个函数的实参
(C).函数调用可以出现在表达式中
(D).函数调用可以作为一个函数的形参
D
101
以下数据中,不正确的数值或字符常量是()。
(A).8.9e1.2
(B).10
(C).0xff00
(D).82.5
A
626
若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下...
(A).A%2==1
(B).!
(A%2==0)
(C).!
(A%2)
(D).A%2
623
以下描述中正确的是()。
(A).由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
(B).do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
(C).在do-while循环体中,一定要有能使while后面表达式的值变为零("
假"
)的操作
(D).do-while循环中,根据情况可以省略while
第11题(1分)
529
在C语言中,调用函数除函数名外,还必须有()。
(A).函数预说明
(B).实际参数
(C).()
(D).函数返回值
第12题(1分)
530
C程序中的宏展开是在()。
(A).编译时进行的
(B).程序执行时进行的
(C).编译前预处理时进行的
(D).编辑时进行的
第13题(1分)
738
若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数
feof(fp)的值为()。
(B).1
(D).一个非0值
第14题(1分)
144
设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。
(A).552
(B).144
(C).264
(D).-264
第15题(1分)
505
以下语句中,循环次数不为10次的语句是()。
(A).for(i=1;
i<
10;
i++);
(B).i=1;
do{i++;
}while(i<
=10);
(C).i=10;
while(i>
0){--i;
(D).i=1;
m:
if(i<
=10){i++;
gotom;
第16题(1分)
710
若有定义:
int*p[3];
,则以下叙述中正确的是()。
(A).定义了一个基类型为int的指针变量p,该变量具有三个指针
(B).定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
(C).定义了一个名为*p的整型数组,该数组含有三个int类型元素
(D).定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
第17题(1分)
198
设有以下语句,若0<
k<
4,下列选项中对字符串的非法引用是()。
charstr[4][2]={"
aaa"
"
bbb"
ccc"
ddd"
},*strp[4];
int
for(j=0;
j<
4;
j++)
strp[j]=str[j];
(A).strp
(B).str[k]
(C).strp[k]
(D).*strp
第18题(1分)
702
对于基本类型相同的两个指针变量之间,不能进行的运算是()。
(A).<
(B).=
(C).+
(D).-
第19题(1分)
499
以下常量中,能够代表逻辑“真”值的常量是()。
(A).'
\0'
(B).0
(C).'
0'
(D).NULL
第20题(1分)
628
以下不正确的if语句形式是()。
(A).if(x>
y&
&
x!
=y);
(B).if(x==y)x+=y;
(C).if(x!
=y)scanf("
%d"
x)elsescanf("
y);
(D).if(x<
y){x++;
y++;
第21题(1分)
721
fseek函数的正确调用形式是()。
(A).fseek(文件类型指针,起始点,位移量)
(B).fseek(fp,位移量,起始点)
(C).fseek(位移量,起始点,fp)
(D).fseek(起始点,位移量,文件类型指针)
第22题(1分)
629
为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与()配对。
(A).缩排位置相同的if
(B).其之前最近的if
(C).其之后最近的if
(D).同一行上的if
第23题(1分)
607
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
(A).-3
(B).9
(C).-12
(D).6
第24题(1分)
563
以下叙述中正确的是()。
(A).构成C程序的基本单位是函数
(B).可以在一个函数中定义另一个函数
(C).main()函数必须放在其它函数之前
(D).所有被调用的函数一定要在调用之前进行定义
第25题(1分)
700
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下
不能正确执行的赋值语句是()。
(A).c=*p1+*p2;
(B).p2=c;
(C).p1=p2;
(D).c=*p1*(*p2);
第26题(1分)
676
以下只有在使用时才为该类型变量分配内存的存储类说明是()。
(A).auto和static
(B).auto和register
(C).register和static
(D).extern和register
第27题(1分)
188
两个指针变量不可以()。
(A).相加
(B).比较
(C).相减
(D).指向同一地址
第28题(1分)
732
若执行fopen函数时发生错误,则函数的返回值是()。
(A).地址值
(C).1
(D).EOF
第29题(1分)
153
在C语言中,if()语句括号中,用以决定分支流程的表达式(
)。
(A).只能用逻辑表达式
(B).只能用关系表达式
(C).只能用逻辑表达式或关系表达式
(D).可用任意表达式
第30题(1分)
191
设有说明int(*ptr)[M];
其中标识符ptr是()。
(A).M个指向整型变量的指针
(B).指向M个整型变量的函数指针
(C).一个指向具有M个整型元素的一维数组的指针
(D).具有M个指针元素的一维指针数组,每个元素都只能指向整型量
第31题(1分)
166
下列定义数组的语句中不正确的是()。
(A).inta[2][3]={1,2,3,4,5,6};
(B).inta[2][3]={{1},{4,5}};
(C).inta[][3]={{1},{4}};
(D).inta[][]={{1,2,3},{4,5,6}};
第32题(1分)
522
若有chars1[]="
abc"
s2[20],*t=s2;
gets(t);
则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是()。
(A).if(strcmp(s1,s1)>
0)puts(s2);
(B).if(strcmp(s2,s1)>
(C).if(strcmp(s2,t)>
(D).if(strcmp(s1,t)>
第33题(1分)
646
若有说明inta[3][4];
则a数组元素的非法引用是()。
(A).a[0][2*1]
(B).a[1][3]
(C).a[4-2][0]
(D).a[0][4]
第34题(1分)
653
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。
(A).chars[10]="
abcdefg"
;
(B).chart[]="
*s=t;
(C).chars[10];
s="
(D).chars[10];
strcpy(s,"
);
第35题(1分)
160
C语言的if语句嵌套时,if与else的配对关系是()。
(A).每个else总是与它上面的最近的if配对
(B).每个else总是与最外层的if配对
(C).每个else与if的配对是任意的
(D).每个else总是与它上面的if配对
第36题(1分)
170
关于return语句,下列正确的说法是()。
(A).在主函数和其他函数中均可出现
(B).必须在每个函数中出现
(C).可以在同一个函数中出现多次
(D).只能在除主函数之外的函数中出现一次
第37题(1分)
512
while(fabs(t)<
1e-5)
if(!
s/10)break;
循环结束的条件是()。
(A).t>
=1e-5||t<
=-1e-5
(B).fabs(t)<
1e-5&
!
s/10
(C).fabs(t)<
1e-5
(D).s/10==0
第38题(1分)
686
在位运算中,操作数每右移一位,其结果相当于()。
(A).操作数乘以2
(B).操作数除以2
(C).操作数除以4
(D).操作数乘以4
第39题(1分)
544
char*s1="
hello"
*s2;
s2=s1;
则()。
(A).s2指向不确定的内存单元
(B).不能访问"
(C).puts(s1);
与puts(s2);
结果相同
(D).s1不能再指向其它单元
第40题(1分)
109
C语言中,double类型数据占()。
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
三、程序填空
共2题
(共计20分)
第1题(10分)
92
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能:
将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。
例如:
当s串为"
ABCD"
时,则t串的内容应为"
ABCDDCBA"
-------------------------------------------------------*/
#include
<
conio.h>
stdio.h>
string.h>
voidfun(char
*s,char
*t)
i,d;
/***********SPACE***********/
d=【?
】;
for(i=0;
i<
d;
【?
】)
t[i]=s[i];
i++)
/***********SPACE***********/
t[【?
】]=s[d-1-i];
t[【?
】]='
char
s[100],t[100];
\nPleaseenterstringS:
"
scanf("
%s"
s);
fun(s,t);
\nTheresultis:
%s\n"
t);
1).strlen(s)
2).i++或i=i+1或i+=1或++i或i=1+i
3).d+i或i+d
4).2*d或d*2或i+d或d+i
第2题(10分)
486
请编写一个函数fun,它的功能是:
删除字符串中的数字字
符。
例如输入字符串:
48CTYP9E6,则输出:
CTYPE。
#include<
void
fun(【?
char*p=s;
while(*p)
if((*p>
='
)&
(*p<
9'
))p++;
else*s++=【?
【?
main()
charitem[100];
\nEnterastring:
"
gets(item);
fun(item);
\nThestring:
\"
%s\"
\n"
item);
1).char*s或chars[]
2).*p++或*(p++)
3).*s=′\0′或*s=0
四、程序改错
共1题
15
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
函数fun的功能是:
输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
fun()
inti;
floatf1=1,f2=1,f3;
/**********FOUND**********/
%8d"
f1);
for(i=1;
=20;
i++)
f3=f1+f2;
/**********FOUND**********/
f2=f1;
f3=f2;
printf("
%8.0f"
fun();
1).printf(″%8.0f″,f1);
或printf(″%f″,f1);
或printf(″%8f″,f1);
2).for(i=1;
20;
i++)或for(i=1;
20>
i++)或for(i=2;
=i...
3).f1=f2;
4).f2=f3;
五、程序设计
353
/*------------------------------------------------
【程序设计】
--------------------------------------------------
根据整型形参m,计算如下公式的值:
y=1/2+1/4+1/6+...+1/2m。
若m=9,则应输出:
1.414484
部分源程序给出如下。
请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
#include"
stdio.h"
doublefun(intm)
/**********Program**********/
/**********
End
**********/
main()
{voidyzj();
intn;
Entern:
&
n);
\nTheresultis%1f\n"
fun(n));
yzj();
}
voidyzj()
FILE*IN,*OUT;
ints,i;
intt;
floato;
IN=fopen("
in.dat"
r"
if(IN=