c语言题库模拟题Word格式.docx
《c语言题库模拟题Word格式.docx》由会员分享,可在线阅读,更多相关《c语言题库模拟题Word格式.docx(132页珍藏版)》请在冰点文库上搜索。
3'
4'
5'
};
B、inta[]="
string"
;
C、inta[5]={0,1,2,3,4,5};
D、chara="
chara[10];
不能将字符串"
abc"
存储在数组中的是(B)。
A、inti;
for(i=0;
i<
3;
i++)a[i]=i+97;
a[i]=0;
B、a="
C、strcpy(a,"
D、a[0]=0;
strcat(a,"
在C语言中,一维数组的定义方式为:
类型说明符数组名(B)。
A、[整型常量]或[整型表达式]
B、[正整型常量表达式]
C、[整型表达式]
D、[常量表达式]
在定义全局变量和局部静态变量的同时赋值,变量的初始化在(C)时确定的.
A、运行
B、编辑
C、编译
D、调试
关于建立函数的目的,以下正确的说法是(A)。
A、提高程序的可读性
B、减少程序文件所占内存
C、减少程序的篇幅
D、提高程序的执行效率
以下函数调用语句中实参的个数是(D)。
func((e1,e2),(e3,e4,e5));
C、语法错误
设有宏定义#defineSUB(x,y)(x)*y,且a=3,b=4,则SUB(a++,b++)的值为(D).
A、13
B、16
C、20
D、12
变量p为指针变量,若p=&
a,下列写法不正确的是(A)。
A、*(p++)==a++
B、&
*p==&
a
C、(*p)++==a++
D、*&
a==a
下列程序正确的运行结果为(C).
#include<
stdio.h>
{
unionu
{char*name;
intage;
intincome;
}s;
s.name="
WANGLING"
s.age=28;
s.income=1000;
%d\n"
s.age);
A、8
B、28
C、1000
D、不确定
定义my_file为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正
确的调用形式为(C).
A、my_file=fopen("
my.dat"
"
r"
B、my_file=fopen("
rb+"
C、my_file=fopen("
rb"
D、my_file=fopen("
r+"
若i=3,则printf("
-i++);
输出的值为-4。
错
格式字符%x用来以八进制形式输出整数.错
设u=1,v=2,w=3,则逻辑表达式u||v-w&
v+w的值为0.错
已知a=4,b=2,c=3,d=5,表达式a>
b?
a:
c<
d?
c:
d的值为3.错
break语句能够终止当前进行的多层循环.错
break语句不能终止正在进行的多层循环.对
若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
i++)sum+=a[i][2-i];
则sum=21.对
二维数组在内存中存贮时,是按行的顺序进行存储的。
对
C语言中引用数组元素的方括号可以用花括号代替.错
每次调用函数时,都要对静态局部变量重新进行初始化.错
在程序中的第二个函数之后定义了某全局变量,则该程序的所有函数均可使用它.错
在C程序中,函数既可以嵌套定义,也可以嵌套调用。
在定义宏时,在宏名与带参数的括弧之间不应加空格.对
数组名与指针变量是相互等价的.错
两个类型相同的结构体变量,可以互相赋值.对
C语言中,在打开文件时,必须说明文件的使用方式,"
用于打开一个不存在的文件.错
设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____.
【参考答案】
1
1.0
1.
在C语言中,long类型数据占_____个字节,short类型数据占_____个字节.
4
2
intx=2,y=3,z=4;
则表达式x+y>
z&
y==z的值为_____.
则表达式x+y&
(x=y)的值为_____.
C语言中,二维数组在内存中的存放方式为按_____优先存放.
行
函数调用时的实参和形参之间的数据是单向的_____传递.
值
结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体_____,再说明结构体变量.
类型
调用fopen函数打开一文本文件,在"
使用方式"
这一项中,为输入而打开需填入_____.
r+
r
模拟二
以下程序段char*alp[]={"
ABC"
"
DEF"
GHI"
intj;
puts(alp[1]);
的输出结果是(D)。
A、D
B、A
C、B
D、DEF
下列表达式中,可作为C合法表达式的是(D)。
A、3.0%2
B、3=2=1=0
C、[3,2,1,0]
D、(3,2,1,0)
下面程序的正确输出结果是(A).(规定用U表示空格)
floatx=5.783,y=-10.2345;
printf("
x=%-8.2f,y=%-8.2f\n"
x,y);
A、x=5.78UUUU,y=-10.23UU
B、x=5.78,y=-10.23
C、5.78,-10.23
D、x=UUUU5.78,y=UU-10.23
当x为偶数或奇数时(0除外),其值都为0的表达式是:
(C)
A、(x/2*2-x)==0
B、x%2==0
C、!
x!
=0
D、!
(x%2)
下列运算符优先级最低的是(A).
A、=
B、+
D、&
设有如下程序段:
intk=10;
while(k==0)
k--;
则下述说明中正确的是(A).
A、循环体一次也不执行
B、循环体执行一次
C、死循环
D、循环体执行10次
从循环体内某一层跳出,继续执行循环外的语句是(C)。
A、continue语句
B、空语句
C、break语句
D、return语句
以下对一维整型数组a的正确说明是(D)。
A、inta(10);
B、intn;
scanf("
&
n);
inta[n];
C、intn=10,a[n];
D、#defineSIZE10(换行)inta[SIZE];
以下定义语句中,错误的是(A)。
A、intn=5,a[n];
B、inta[]={1,2};
C、chars[10]="
test"
D、char*a[3];
下面叙述中不正确的是(C).
A、可以对字符型数组进行整体输入和输出.
B、不可以对浮点型数组进行整体输入和输出.
C、可以对整型数组进行整体输入和输出.
D、字符型数组可以存放字符串.
函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是(C).
A、实参与形参是双向传递
B、形参可以是表达式
C、形参和实参可以同名
D、实参类型一定要在调用时指定
以下错误的描述是:
函数调用可以(D)。
A、出现在执行语句中
B、做为一个函数的实参
C、出现在一个表达式中
D、做为一个函数的形参
以下不正确的说法是:
C语言规定(C)。
A、实参可以是常量,变量或表达式
B、实参可以为任何类型
C、形参可以是常量,变量或表达式
D、形参应与其对应的实参类型一致
下列形式,不属于编译预处理命令的是(D).
A、#ifdefM
B、#undefM
C、#if(M>
1)
D、while(M>
下面判断正确的是(D)。
A、charc[4]="
d[4]="
等价于charc[4]=d[4]="
B、charstr[10]={"
china"
等价于charstr[10];
str[]={"
C、char*a="
等价于char*a;
*a="
D、char*s="
等价于char*s;
s="
若有以下结构体定义:
structexample
{intx;
inty;
}v2;
则(D)是正确的引用或定义.
A、example.x=10;
B、structv2;
v2.x=10;
C、examplev2;
D、structexamplev2={10,3};
若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数
feof(fp)的值为(D)。
A、-1
B、1
C、一个非0值
D、0
如果有一个字符串,其中第十个字符为'
\n'
,则此字符串的有效字符为9个。
格式字符%o用来以十六进制形式输出整数.错
已知a=3,b=4,c=5,则逻辑表达式!
(a>
b)&
!
c||1的值为1.对
已知x=2,y=2,执行分支语句if(x==y)y=1;
elsey=-1;
后,y=-1.错
continue语句对于while和do-while循环来说,意味着转去计算While表达式.对
在do-while循环中,根据情况可以省略while.错
对于字符数为n个的字符串,其占用的内存为n+1个字节空间.对
puts函数用来输出一个字符.错
引用数组元素时,下标可以是整型表达式或整型常量.对
函数调用结束后,静态局部变量所占用的空间被释放.错
在一个函数中定义的静态局部变量可以被另一个函数调用.错
当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.错
计算机编译系统对宏定义在编译时进行语法检查.错
若定义intarray[5],*p;
则赋值语句p=array;
是正确的.对
共同体变量所占的内存长度等于最长的成员的长度。
C语言中,打开一个文件就意味着产生了一个文件.错
设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____.
已知a=-13,b=6,a%b的十进制数值为_____.
-1
已知a=12,写出表达式0<
a&
a<
2的值是_____.
已知i=5,写出语句a=(i>
5)?
0:
1;
执行后整型变量a的值是_____.
C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算.
指针
地址
C语言中一个函数由函数首部和_____两部分组成.
函数体
设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是_____。
unionstud{shortintnum;
charname[10];
floatscore[5];
doubleave;
}c;
20
在C语言中,关闭文件即是文件指针不再指向该_____.
文件
模拟三
sizeof(float)是(C)。
A、一个浮点表达式
B、一个不合法的表达式
C、运算结果是一个整型表达式。
D、一种函数调用
下列数据中属于"
字符串常量"
的是(B)。
A、'
A'
B、"
C、ABC
D、'
ABC'
用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法(B).
(用"
[CR]"
表示回车,U表示空格)
{inti,k;
i=%d,k=%d"
i,&
k);
A、i=10[CR]k=15[CR]
B、i=10,k=15[CR]
C、10U15[CR]
D、10,15[CR]
逻辑表达式3<
2||-1&
4>
3-!
0的值为:
(A)
B、3
C、0
下列运算符中是C语言关系运算符的是(C)。
A、&
B、~
=
语句while(!
E);
中的表达式!
E等价于(D)。
A、E==1
B、E!
C、E!
=1
D、E==0
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
下面各语句中,能正确进行赋字符串操作的语句是(B).
A、chars1[5][]={"
ABCDE"
B、chars2[6]={'
B'
C'
D'
E'
C、charst[][]={"
D、chars[5]={'
若有说明:
inta[3][4]={0};
则下面正确的叙述是(A)。
A、数组a中每个元素均可得到初值0
B、只有元素a[0][0]可得到初值0
C、数组a中各元素都可得到初值,但其值不一定为0
D、此说明语句不正确
若有说明inta[3][4];
则a数组元素的非法引用是(B)。
A、a[1][3]
B、a[0][4]
C、a[0][2*1]
D、a[4-2][0]
执行下面程序后,输出结果是(D)。
{inta,b,c;
a=45,b=27,c=0;
c=max(a,b);
printf("
c);
intmax(intx,inty)
{intz;
if(x>
y)z=x;
elsez=y;
return(z);
}
A、72
B、18
C、27
D、45
以下正确的描述是:
在C语言程序中(B)。
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套
D、函数的定义和函数的调用均不可以嵌套
在C语言的函数中,下列正确的说法是(B)。
A、形参可以是常量和变量
B、可以有也可以没有形参
C、数组名不能作形参
D、必须有形参
设有宏定义#definePI3.14和#defineS(r)PI*r*r,则S
(2)的值为(B).
A、6.28
B、12.56
C、3.14
D、9.42
inta[10]={1,2,3,4,5,6,7,8};
int*p;
p=&
a[5];
p[-3]的值是(D)。
A、4
C、不一定
D、3
若有以下程序段,则使用错误的选项是(C).
structstudent
intnum;
structstudentstu[3]={{1001,20},{1002,19},{1004,20}};
main();
structstudent*p;
p=stu;
…
A、(*p).num
B、(p++)->
num
C、p=&
stu.age
D、p++
若以"
a+"
方式打开一个已存在的文件,则以下叙述正确的是(A)。
A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B、以上各种说法皆不正确
C、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
D、文件打开时,原有文件内容被删除,只可作写操作
#define和printf都不是C语句。
格式字符%x用来以十六进制形式输出整数.对
语句if(a>
b)printf("
a);
elseprintf("
b);
可以用条件表达式a>
b取代.错
逻辑表达式-5&
!
8的值为1.错
循环结构中的continue语句是使整个循环终止执行错
for循环语句不能用于循环次数未知的情况下.错
引用数组元素时,数组元素下标必须是整型常量.错
数组的首地址一定是第一个数组元素的地址.对
数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.对
数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值.错
在主函数中,必须要对被调用函数进行类型说明,否则在编译时会出现错误.错
在一个函数中定义的静态局部变量不能被另外一个函数所调用.对
指向某一变量的指针,就是该变量的内存地址.对
对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。
在打开文件时,必须说明文件的使用方式,"
表示以只读方式打开一个文件.对
intx=2;
z=x++-1;
则x的值为_____.
3
设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为_____.
2.5
设x=62,表达式x>
=60&
x<
70||x==1的值为_____.
c语言表达式5>
2>
7>
8的值是_____.
字符串比较的库函数是_____,只写函数名即可.【参考答案】
strcmp
从函数的形式上看,函数分为无参函数和_____两种类型.
有参函数
设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是_____。
unionstud{charnum[6];
floats[4];
}a,*p;
16
在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和_____文件.
二进制
模拟四
下列数据中,为字符串常量的是(D)。
B、Howdoyoudo.
C、$abc
D、"
house"
以下所列的C语言常量中,错误的是(B)。
A、0xFF
B、1.2e0.5
C、2L
\72'
以下程序的输出结果是(D)。
{floatx=3.6;
inti;
i=(int)x;
x=%f,i=%d\n"
x,i);
A、x=3.600000,i=4
B、x=3i=3.600000
C、x=3,i=3
D、x=3.600000,i=3
若k是整型,则以下程序段的执行结果是:
(B)
k=-3;
if(k<
=0)printf("
####"
)
"
A、####
B、有语法错误,无结果
C、&
D、####&
若x=2,y=3则x||y的结果是(C)。
针对下列程序段回答问题(B).
for(t=1;
t<
=100;
t++)
x);
if(x<
0)continue;
%3d"
t);
A、x>
=0时什么也不输出
B、最多允许输出100个非负整数
C、printf函数永远也不执行
D、当x<
0时整个循环结束
以下程序的执行结果是(B)。
main()
{intnum=0;
while(num<
=2){num++;
printf("
num);
}}
A、0,1,2
B、1,2,3,
C、1,2,3,4,
D、1,2,
选择正确的输入语句()。
:
(其中:
charstring[20];
)使得string的内容为"
Iamstudent"
.D
A、scanf("
%s"
string);
B、scanf("
%c"
&
string);
C、scanf("
D、gets(string);
对以下说明语句inta[10]={6,7,8,9,10};
的正确理解是(B)。
A、将5个初值依次赋给a[6]至a[10]
B、将5个初值依次赋给a[0]至a[4]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[1]至a[5]
以下标识符中可以作为用户函数名的是(D).
A、struct
B、int
C、union
D、go_to
以下叙述错误的是(B).
A、函数调用可以出现在一个表达式中
B、函数调用可以作为一个函数的形参
C、函数调用可以作为一个函数的实参
D、函数允许递归调用
若用数组名作为函数的实参,传递给形参的是(B)。
A、数组第一个元素的值
B、数组的首地址
C、数组元素的个数
D、数组中全部元素的值
C、函数的定义和函数调用不可以嵌套
D、函数的定义和函数调用均可以嵌套
下列说法中正确的是(B).
A、函数调用不占运行时间,只占编译时间.
B、宏替换不占运行时间,只占编译时间.
C、有参数的宏定义,就是函数.
D、在定义宏时,宏名与带参数的括弧之间可以加空格.
int*p,m=5,n;
以下正确的程序段是(D)。
*p=n;
B、p=&
n;
scanf("
*p)
p);
D、p=&
p);
对于下述定义,不正确的叙述是(B).
uniondata
{inti;
charc;
floatf;
}a,b;
A、变量a的地址和它的各成员地址都是相同的
B、可以在定义时对a初始化
C、变量a所占内存的长度等于成员f的长度
D、不能对变量a赋值