C语言试题1Word格式文档下载.docx
- 文档编号:19453562
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:27
- 大小:33.78KB
C语言试题1Word格式文档下载.docx
《C语言试题1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言试题1Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
=z)
C)(x>
=y>
=z)D)(x>
6.如果假设
a=2,b=3,x=3.5,y=2.5
那么下面的算术表达式的值是()。
(float)(a+b)/2+(int)x%(int)y
A)2B)3
4C)3.5D)2.5
7.在C语言中,合法的长整型常数是()。
A)OLB)4962710
C)324562&
D)216D
8.以下程序的输出结果是()。
程序1-2:
P1-2.c
intx=10,y=10;
%d%d\n"
x--,--y);
A)1010B)99
C)910D)109
3.基本语句
1.C语言中一共有5类语句,它们是控制语句、______语句、______语句、空语句和______。
其中______语句在程序中可以用作空循环体。
2.以下合法的赋值语句是()。
A)x=y=100;
B)d--;
C)x+y;
D)c=int(a+b);
3.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()。
A)INPUTx、y、z;
B)scanf("
%d%d%d"
,&
x,&
y,&
z);
C)scanf("
,x,y,z);
D)read("
4.以下的语句中,错误的是()。
A)putchar('
a'
B)printf("
%d"
n);
C)getchar();
D)scanf("
%7.2f"
a);
5.以下叙述中正确的是()。
A)输入项可以是一个实型常量,如:
3.5);
B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
a=%d,b=%d"
)'
C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
%4.2f"
d);
D)当输入数据时,必须指明变量地址,例如:
f);
6.在下面的语句中除了使用控制语句以外,还使用的其他语句类型是()。
5while(getchar()!
='
\n'
A)复合语句和空语句B)表达式语句和空语句
C)空语句和函数调用语句D)复合语句和函数调用语句选择结构程序设
选择结构程序设计:
1.将下面的程序运行两遍,若分别从键盘上输入6和4,则输出结果分别是()。
程序1-3:
P1-3.c
main()
{
intx;
x);
if(x++>
5)
x);
else
%d\n"
x--);
}
A)7和5B)6和3
C)7和4D)6和4
2.阅读以下程序:
程序1-4:
P1-4.c
main()
if(x--<
x++);
程序运行后,如果从键盘上输入5,则输出结果是()。
A)3B)4
C)5D)6
3.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;
x=2;
y=3;
z=4;
m=(w<
x)?
w:
x;
m=(m<
y)?
m:
y;
z)?
z;
则该程序运行后,m的值是()。
A)4B)3C)1D)2
64.设a=3,b=4,c=5,则下面逻辑表达式的值是:
()。
!
(a+b)+c-1&
b+c/2
A)1B)10.5C)0D)−1
5.阅读以下程序:
程序1-5:
P1-5.c
ints;
switch(s==!
s)
case0:
printf("
Thenumberisnot0"
break;
case1:
Thenumberis0"
break;
程序运行后,如果从键盘上输入−9,则输出结果是()。
A)Thenumberisnot0B)Thenumberis0
C)程序出错D)0
4.循环结构程序设计
1.若变量i和j已经定义为int类型,则以下程序段中内循环体的总的执行次数是()。
for(i=5;
i;
i--)
for(j=0;
j<
4;
j++)
{...}
A)20B)25
C)24D)30
2.设I,j,k均为int型变量,则执行完下面的for循环后,k的值为()。
for(i=0,j=10;
i<
=j;
i++,j--)
k=i+j;
A)11B)9
C)20D)10
3.有以下程序:
程序1-6:
P1-6.c
inti,j;
for(j=10;
11;
for(i=9;
j;
i++)
if(!
(j%i))
7break;
if(i=j-1)
j);
输出结果是()。
A)11B)10
C)9D)12
4.以下程序的输出结果是()。
程序1-7:
P1-7.c
inta,b;
for(a=1,b=1;
a<
=100;
a++)
if(b>
=10)
if(b%3==1)
b+=3;
continue;
a);
A)101B)6
C)5D)4
5.假定a和b为int型变量,则执行以下语句后b的值为()。
a=1;
b=10;
do
b-=a;
a++;
while(b--<
0);
A)9B)-2
C)-1D)8
6.在C语言中,下面的说法正确的是()。
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非0时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为0时结束循环
5.数组的定义和引用
1.在下面的数组定义中,合法的是()。
A)inta[]="
string"
;
B)inta[5]={0,1,2,3,4,5};
C)vhsts="
D)chara[]={0,1,2,3,4,5};
2.若有定义和语句:
chars[10];
s="
abcd"
%s\n"
则结果是(以下k代表空格)()。
A)输出abcdB)输出a
C)输出abcdkkkkkD)编译不通过
3.给出以下定义:
charx[]="
abcdefg"
chary[]={'
'
b'
c'
d'
e'
f'
g'
};
则正确的叙述为()。
A)数组x和数组y等价B)数组x和数组y的长度相同
C)数组x的长度大于数组y的长度D)数组x的长度小于数组y的长度4.若有以下定义:
doublew[10];
则w数组元素下标的上限为______,下限为______。
5.下面各语句行中,正确的关于字符串操作的语句行是()。
A)charst[4][5]={"
ABCDE"
B)chars[5]={'
A'
B'
C'
D'
E'
C)char*s;
s="
D)char*s;
%s"
6.下述对C语言字符数组的描述中错误的是()。
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
7.定义如下变量和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是()。
for(i=0;
3;
x[i][2-1]);
A)1,5,9B)1,4,7C)3,5,7D)3,6,9
6.函数
1.以下函数调用语句中含有()个实参。
func((exp1,exp2),(exp3,exp4,exp5));
A)1B)2C)4D)5
2.sizeof(double)是()。
A)一种函数调用B)一个双精度型表达式
C)一个整型表达式D)一个不合法的表达式
3.设有以下语句:
charstr1[]="
str2[8],*str3,*str4="
则()不是对库函数strcpy的正确调用。
A)strcpy(str1,"
HELLO1"
B)strcpy(str2,"
HELLO2"
C)strcpy(str3,"
HELLO3"
D)strcpy(str4,"
HELLO4"
4.设有如下的函数:
g(x)
floatx;
\n%d"
x*x);
则函数的类型
A)与参数x的类型相同B)是void
C)是intD)无法确定
5.C语言规定,程序中各函数之间()。
A)既允许直接递归调用又允许间接递归调用
B)不允许直接递归调用又不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
6.以下对C语言函数的有关描述中,正确的是()。
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D)C程序中有调用关系的所有函数必须放在同一个源程序文件中
7.以下叙述中不正确的是()。
A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值
B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容
C)在C中,外部变量的隐含类别是自动存储类别
D)在C中,函数形参可以说明为register变量
7.编译预处理
1.C提供3种预处理功能:
______、______和条件编译。
2.指出下面这句话的问题:
C语言编译预处理是在编译之前完成的。
103.设有如下宏定义
#defineMYSWAP(z,x,y){z=x;
x=y;
y=z;
以下程序段通过宏调用实现变量a、b内容交换,请填空。
floata=5,b=16,c;
______;
4.下列程序的运行结果是()。
程序1-8:
P1-8.c
#include<
#defineM3
#defineNM+1
#defineNNN*N/2
%d,"
NN);
5*NN);
A)3,17B)4,18C)6,18D)8,40
5.以下程序的输出结果是()。
程序1-9:
P1-9.c
#defineFUDGE(y)2.84+y
#definePR(a)printf("
(int)(a))
#definePRINT(a)PR(a);
putchar('
)
intx=2;
PRINT(FUDGE(5)*x);
A)11B)13C)15D)16
指针
1.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是()。
A)pb=&
xB)pb=x;
C)*pb=&
D)*pb=*x
2.下面函数的功能是()。
sss(s,t)
char*s,*t;
while((*s)&
(*t)&
(*t++==*s++));
return(*s-*t);
A)求字符串的长度B)比较两个字符串的大小
11C)将字符串s复制到字符串t中D)将字符串s接续到字符串t中
3.设有说明
int(*ptr)[m];
其中的标志符ptr是()。
A)m个指向整型变量的指针
B)指向m个整型变量的函数指针
C)一个指向具有m个整型元素的一维数组的指针
D)具有m个指针元素的一维指针数组,每个元素都只能指向整型量
4.若要用下面的程序片段使指针变量P指向一个存储型变量的动态存储单元:
int*p;
p=______malloc(sizeof(int));
则应填入()。
A)intB)int*
C)(*int)D)(int*)
5.下面函数的功能是()。
intfunl(char*x)
char*y=x;
while(*y++);
return(y-x-1);
C)将字符串x复制到字符串yD)将字符串x连接到字符串y后面
6.设有以下定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是()。
A)*((*prt+1)[2])B)*(*(p+5))
C)(*prt+1)+2D)*(*(a+1)+2)
7.函数NewPrint用于打印sin(x)、cos(x)和ln(x)等函数的曲线模拟,其参数就是上述函数,则NewPrint的原型为()。
A)doubleNewPrint(doublex)
B)voidNewPrint(double(*f)(doublex))
C)void(*NewPrint)(doublex)
D)void(*NewPrint)(doublef(doublex))
8.结构体与共用体
1.结构体又称为“______”,是由具有不同数据类型的多个变量组合而成的数据存储形式。
定义一个结构体类型的一般形式为:
12struct结构体名{成员列表};
其中的成员又可以称为“______”,成员表列可以称为“______”。
2.若有以下的说明,则对初值中字符'
的引用方式为()。
staticstruct
charch;
doublex;
chara[];
}c[2][2]={
{{'
3.5,'
bc'
},
{'
4.5,'
de'
m'
8.6,'
abc'
};
A)c.chB)c[0][0].ch
C)c[1][1].chD)a[0]
3.设有以下说明语句:
structex
floaty;
charz;
}example;
则下面的叙述中不正确的是()。
A)struct结构体类型的关键字B)example是结构体类型名
C)x,y,z都是结构体成员名D)structex是结构体类型
4.以下选项中,能定义s为合法的结构体变量的是()。
A)typedefstructabc
doublea;
charb[10];
}s;
B)struct
C)structabc
abcs;
D)typedefstructabc
13doublea;
5.变量a所占内存字节数是()。
unionU
charst[4];
inti;
longl;
structA
intc;
unionUu;
}a;
A)4B)5C)6D)8
9.位运算
1.在位运算符中除了取反运算符“~”以外,其余均为______运算符,即要求运算符的两侧各有一个运算量,并且运算量只能是______或者______数据。
2.位段就是以位为单位定义长度的______类型中的成员,就是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的______。
3.整型变量x和y的值相等,且为非0值,则以下选项中,结果为0的表达式是()。
A)x||yB)x|yC)x&
yD)x^y
4.设有以下语句:
chara=3,b=6,c;
c=a^b<
<
2;
则c的二进制值是()。
A)00011011B)00010100
C)00011100D)00011000
5.字符(char)型数据在微机内存中的存储形式是()。
A)反码B)补码
C)EBCDIC码D)ASCII码
10.文件操作
1.标准函数fgets(s,n,f)的功能是()。
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
2.对于用“r”方式打开文件,下列说法正确的是()。
A)用“r”方式打开的文件只能输入,不能输出
B)用“r”方式打开的文件只能输出,不能输入
C)用“r”方式可以打开任何文件
D)以上均不对
3.下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
#include"
stdio.h"
FILE*fp;
if((fp=fopen(______))==NULL)
exit(0);
while((ch=getchar())!
@'
fputc(ch,fp);
fclose(fp);
4.下面的程序执行后,文件test.t中的内容是:
程序1-10:
P1-10.C
#include<
voidfun(char*fname,char*st)
FILE*myf;
myf=fopen(fname,"
w"
for(i=0;
strlen(st);
fputc(st[i],myf);
fclose(myf);
fun("
test"
"
newworld"
hello,"
A)hello,B)newworldhello,
C)newworldD)hello,rld
5.下面的程序用来统计文件中字符的个数,请填空。
程序1-11:
P1-11.C
#include
longnum=0;
if((fp=fopen("
fname.dat"
r"
))==NULL)
Can'
topenfile!
);
exit(0);
while______
fgetc(fp);
num++;
num=%d\n"
num);
6.设有如下程序:
程序1-12:
P1-12.C
main(argc,argv)
intargc;
char*argv[];
voidfc();
inti=1;
while(--argc>
0)
if((fp=fopen(argv[i++],"
Cannotopenfile!
exit
(1);
fc(fp);
voidfc(ifp)
FILE*ifp;
charc;
while((c=getc(ifp))!
#'
putchar(c-32);
上述程序经编译、连接后生成可执行文件名为cpy.exe。
假定磁盘上有3个文本文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题