C语言上机模拟题1Word文件下载.docx
《C语言上机模拟题1Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言上机模拟题1Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
C.'
\xyz'
D.'
\019'
9.下面用户标识符中合法的是____________。
A.iPhone#
B.13a
C.char
D._int
10.已知intc1=5,c2=2,c3;
,则执行c3=c1/c2后,c3的值是_______。
A.5
B.2.5
D.2
11.设有定义intb=0;
,表达式_______与其它表达式的值不相同。
A.b+=1
B.b++
C.++b
D.b+1
B
12.执行语句inta=8;
a+=a-=a*a;
后,变量a的值是______。
A.-240
B.64
C.112
D.-112
13.若a、i和j都是int型变量,则执行语句a=(i=4,j=16);
后a的值为_______。
A.4
B.16
C.20
D.12
14.已知intx=10;
floaty=20;
doublez=30;
,则表达式(int)(x+y)-z的数据类型是______。
A.int
B.float
C.double
D.无法确定
15.下列运算符中优先级最高的是_______。
A.<
B.+
C.&
&
D.||
16.C语言中基本数据类型包括_______。
A.整型、实型、逻辑型
B.整型、字符型、逻辑型
C.整型、实型、字符型
D.字符型、实型、逻辑型
17.已知inta,b,c;
,若有scanf("
a=%d,b=%d,c=%d"
&
a,&
b,&
c);
,为使变量a的值为1,b的值为2,c的值为3,从键盘输入数据的正确形式是_______。
A.123
B.1,2,3
C.a=1b=2c=3
D.a=1,b=2,c=3
18.下列程序的输出结果是______。
#include<
stdio.h>
intx=3,y=5;
voidmain()
{
intx=0;
x=x+y;
printf("
%d"
x);
}
A.3
B.4
C.5
D.8
19.有定义intx=1,y=2,z=3;
,执行下列程序段后,输出的结果是_______。
if(x>
y)z=x;
x=y;
y=z;
%d,%d,%d"
x,y,z);
A.1,2,3
B.2,3,3
C.2,3,1
D.2,3,2
20.执行以下程序段后,则输出的结果是______。
inta=1;
switch(a)
case1:
printf("
你好"
);
case2:
再见"
break;
default:
晚安"
A.你好
B.再见
C.晚安
D.你好再见
21.在C语言中,用_______表示逻辑真。
B.非0的数
C.非1的数
D.0
22.若i为整型变量,则下列循环体执行次数是_______。
for(i=2;
i==0;
)printf("
%d\n"
i--);
A.2次
B.1次
C.0次
D.无限次
23.while(leap)和下列_______等价。
A.while(leap!
=0)
B.while(5)
C.while(leap==0)
D.while(0)
24.下列程序段中循环体语句_______。
inty=15;
--y);
do
}while(!
y);
A.一次也不执行
B.执行一次
C.有语法错误
D.执行无限次
25.在C语言中,表示结束本层循环的语句是_______。
A.extern语句
B.break语句
C.continue语句
D.end语句
26.下列数组定义及初始化中,正确的是_______。
A.inta[]="
string"
B.inta[5]={0,1,2,3,4,5};
C.chara="
D.inta[]={0,1,2,3,4,5};
27.若有inta[]={1,2,3,4,5,6,7};
charc1='
b'
c2='
2'
,则下列表达式值不等于2的是______。
A.a[1]
d'
-c1
C.a['
3'
-c2]
D.c2-0
28.已知inta[3][2]={1,2,3,4,5,6};
,则a[1][1]的值是_______。
B.5
29.若有定义inta[3][4];
,则对数组元素引用正确是_______。
A.a[1][4]
B.a[1,3]
C.a
(2)
(1)
D.a[2][0]
D参考答案:
30.下列程序段的运行结果是_______。
charc[5]={'
a'
'
\0'
c'
};
%s"
c);
'
B.ab
C.abc
D.ab\0c\0
31.如果在程序中需要用到strcpy、strcat等库函数时,需要用#include包含_______头文件。
A.math.h
B.string.h
C.ctype.h
D.stdio.h
32._______是正确的函数声明语句。
A.floatfunc(inta,intb);
B.floatfunc(inta,b);
C.doublefunc(a,intb);
D.doublefunc(a,b);
33.C程序函数中的局部变量是指______。
A.函数外部定义的变量
B.函数体内定义的变量
C.函数之间定义的变量
D.函数之间定义的static类型变量
34.若用数组名作为函数调用的实参,传递给形参的是_______。
A.数组元素的个数
B.数组第一个元素的值
C.数组全部元素的值
D.数组的首地址
35.下列语句中,定义指针变量p的正确语句是_______。
A.intx,p=&
x;
B.intx,*p=x;
C.intx,*p=&
D.intx,*p=*x;
36.若有定义语句inta[5]={0,1,2,3,4},*p=a;
,则不是对a数组元素的正确引用是____________。
A.a[p-a]
B.*(&
a[2])
C.*p
D.*(*(a+2))
37.若有intx[10],*p=x;
,则*(p+5)表示______。
A.数组元素x[5]的地址
B.数组元素x[5]的值
C.数组元素x[6]的地址
D.数组元素x[6]的值
38.设有预处理命令#defined2和定义inta=10;
longb=20;
charc='
,则下列语句中错误的是_______。
A.a++;
B.b++;
C.c++;
D.d++;
39.设有定义语句:
structstu
{
intx;
floaty;
}stutype;
则下列的叙述不正确的是_______。
A.struct是定义结构体类型的关键字
B.structstu是用户定义的结构体类型
C.x和y都是结构体成员
D.stutype是用户定义的结构体类型名
40.以读写方式打开一个已有的二进制文件cct.bin,以下选项中正确的是______。
A.FILE*fp;
fp=fopen("
cct.bin"
"
r"
B.FILE*fp;
w"
C.FILE*fp;
rb"
D.FILE*fp;
rb+"
题目:
在屏幕上输出以下图形(字符之间没有空格)。
#include<
voidmain()
inti,j;
charch;
for(i=0;
i<
5;
i++)
{
j=0;
while(j<
=5)/*$ERROR$*/
ch='
A'
+(i+j)%5;
ch);
/*$ERROR$*/
j++;
}
/n"
/*$ERROR$*/
$1$:
j<
5
$2$:
%c"
$3$:
\n"
给定程序中规定输入的字符串全部为字母,fun函数的功能是:
统计字符串中每个字母出现的次数(不区分大小写),并输出次数最多的字母(如果有多个相同,输出一个即可)。
示例:
输入字符串:
dadbcdbabdb,对应的输出应为:
b或d。
string.h>
voidfun(chara[])
intb[26],i,n,max;
/*数组b用于统计26个字母个数*/
for(i=0;
i<
26;
i++)
a[i]=0;
n=strlen(a);
n;
if(a[i]>
='
&
a[i]<
z'
)
b[a[i]-'
]++;
elseif(a[i]>
Z'
)
max=0;
for(i=1;
if(b[max]>
b[i])/*$ERROR$*/
max=i;
出现次数最多的字符是:
%c\n"
max+'
voidmain()
chara[200];
请输入一个待统计的字符串:
"
scanf("
a);
fun(a);
1|3:
b[i]=0;
2|3:
b[a[i]-'
3|3:
if(b[max]<
b[i])
求满足下列条件的三位数之和。
条件如下:
(1)各位数字只能从5、6、7、8中选;
(2)各位数字互不相同。
输出格式:
s=12345
参考程序一:
voidPRINT(longs)
FILE*out;
s=%d\n"
s);
if((out=fopen("
result.dat"
w+"
))!
=NULL)
fprintf(out,"
s=%ld"
fclose(out);
/*考生在此设计程序*/
longs=0;
inta,b,c;
for(a=5;
a<
=8;
a++)
for(b=5;
b<
b++)
for(c=5;
c<
c++)
if(a!
=b&
a!
=c&
c!
=b)s+=100*a+10*b+c;
PRINT(s);
参考程序二:
fprintf(out,"
/*考生在此设计程序*/
longs=0;
inti,j,gw,sw,bw,v[6]={1,2,3,4,9,0};
for(i=567;
=876;
gw=i%10;
sw=i/10%10;
bw=i/100;
if(gw!
=sw&
gw!
=bw&
sw!
=bw)
{
for(j=0;
6;
j++)
if(gw==v[j]||sw==v[j]||bw==v[j])break;
if(j>
=6)s=s+i;
}
参考程序三:
inti,v[4]={5,6,7,8};
4;
s=s+v[i]*111*6;
参考程序四:
fclose(out);
#defineN3
longs=0,t,v;
inti,len=0;
charc[]="
5678"
while(c[len]!
)len++;
for(i=0,v=0;
N;
i++)
v=v*10+1;
for(t=1,i=1;
len;
t=t*i;
s=s+(c[i]-'
0'
)*v*t;
已知整型数组a存储了50个数。
查找个位数小于6的元素并求和输出。
例如:
3421。
输出结果的形式为:
s=123456
参考程序:
s=%ld\n"
inta[50]={3421,3834,3124,3349,2842,2384,3459,2338,2348,7234,6482,4823,4829,5234,8449,2042,7383,2438,4592,8343,8342,7234,9432,8432,
8842,8812,4324,7724,7345,9134,7442,7524,6732,7752,7692,1384,2343,8249,7235,7731,7525,6259,2385,7525,6323,7525,7534,8535,7563,7534};
inti;
longsum=0;
50;
if(a[i]%10<
6)
sum=sum+a[i];
PRINT(sum);