选拔试题文档格式.docx
《选拔试题文档格式.docx》由会员分享,可在线阅读,更多相关《选拔试题文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
4).当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是___C____.
A)c=b=a;
B)(a=c)‖(b=c);
C)(a=c)&
&
(b=c);
D)a=c=b;
5).语句printf(“%d\n”,strlen(“asd\n\x12\1\\”));
的输出结果是____A__.
A)9B)11C)7D)8
6).下列程序的运行结果是___B_吧bba____.
main()
{inty=10;
do{y--;
}while(--y);
printf(“%d\n”,y--);
A)-1B)1C)8D)0
7).阅读下面程序,该程序段的功能是__D___.
#include<
stdio.h>
{intc[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;
i<
7;
i++)
{t=c[i];
j=i-1;
while(j>
=0&
t>
c[j]){c[j+1]=c[j];
j--;
c[j+1]=t;
for(i=0;
i++)printf(“%d”,c[i]);
putchar('
\n'
);
}
A)对数组元素的升序排列B)对数组元素的降序排列
C)对数组元素的倒序排列D)对数组元素的随机排列
8).有如下程序:
#definef(x)x*x
{inti;
i=f(4+4)/(2+2);
printf(“%d\n”,i);
该程序执行后的输出结果是__C_____.
A)28B)21C)16D)4
9).下列程序的运行结果是____A___.
{unsignedc1=0xff,c2=0x00;
c1=c2|c1>
>
2;
c2=c1^0236;
printf(“%x,%x\n”,c1,c2);
A)0x3f,0XA1B)3f,A1C)ffff,61D)3f,a1
10).有以下程序:
{FILE*fp;
inti=20,j=30,k,n;
fp=fopen(“d1.dat”,“w”);
fprintf(fp,“%d\n”,i);
fprintf(fp,“%d\n”,j);
fclose(fp);
fp=fopen(“d1.dat”,“r”);
fscanf(fp,“%d%d”,&
k,&
n);
printf(“%d%d\n”,k,n);
该程序运行后的输出结果是_______.
A)2030B)2050C)3050D)3020
2、多选(每题2分,共10题,共20分,错选,漏选均不得分)
1).下列符号串中,不属于C语言合法标识符的有__B,C___.
A)_1_2_3B)a-b-cC)intD)9cd
2).下列选项中,没有构成死循环的程序段有__AC___.
A)inti=100;
B)for(;
;
)
while
(1)
{i=i0+1;
if(i>
=100)break;
C)intk=0;
D)ints=36;
do{++k;
}while(k>
=0);
while(s);
——s;
3).下列判断正确的是___BCD____.(知识点10.3)
A)char*a=“china”;
等价于char*a;
*a=“china”;
B)charstr[6]={“china”};
等价于charstr[]={“china”};
C)char*s=“china”;
等价于char*s;
s=“china”;
D)charc[4]=“abc”,d[4]=“abc”;
等价于charc[4]=d[4]=“abc”;
4).设有如下定义:
char*s[2]={“abcd”,“ABCD”};
则下列说法正确的有___B__.
A)s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址
B)s是指针数组名,它含有两个元素分别指向字符型一维数组
C)s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素
D)s数组的两个元素中分别存放了字符'
a'
和'
A'
的地址
5).若有以下说明:
inta[5][9];
则下列选项中对数组元素a[i][j]的引用错误的有_______.(0<
=i<
4,0<
=j<
9)
A)*(&
a[0][0]+9*i+j)B)*(a+i)(j)C)*(*(a+i)+j)D)*(a[i]+j)
6).若有定义:
char*st=“howareyou!
”;
下面程序段正确的有_____.(知识点:
7.3)
A)chara[11],*p;
strcpy(p=a+1,&
st[4]);
B)chara[11];
strcpy(++a,st);
C)chara[11];
strcpy(a,st);
D)chara[],*p;
strcpy(p=&
a[1],st+2);
7).设有以下说明语句:
Structstu
{inta;
floatb;
}stutype;
则下列叙述正确的有_______.
A)struct是结构体类型的关键字 B)structstu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名
8).设有定义语句:
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_______.
A)for(i=0;
6;
i++)printf(“-”,*(p++));
B)for(i=0;
i++)printf(“-”,*(p+i));
C)for(i=0;
i++)printf(“-”,*p++);
D)for(i=0;
i++)printf(“-”,(*p)++);
9).下列叙述正确的有_____.
A)函数可以嵌套定义,但不能嵌套调用
B)函数可以嵌套调用,也可以嵌套定义
C)函数不可以嵌套定义,但可以递归调用
D)函数可以嵌套调用,但不能嵌套定义
10).下列选项中可以将变量n清零的表达式有_______.
A)n=n&
~nB)n=n&
0C)n=n^nD)n=n|n
3、程序填空(每空2分,共10空,共20分)
1)、请补充函数fun(),该函数的功能是:
把从主函数中输入的字符串str2接在字符串str1的后面。
例如:
str1=“Howdo”,str2=“youdo?
”,结果输出:
Howdoyoudo?
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
#include<
conio.h>
#defineN40
voidfun(char*str1,char*str2)
{
inti=0;
char*p1=str1;
char*p2=str2;
while(【1】)
i++;
for(;
【2】;
*(p1+i)=【3】;
*(p1+i)='
\0'
;
main()
charstr1[N],str2[N];
clrscr();
printf("
*****Inputthestringstr1&
str2*****\n"
);
\nstr1:
"
gets(str1);
\nstr2:
gets(str2);
**Thestringstr1&
str2**\n"
puts(str1);
puts(str2);
fun(str1,str2);
*****Thenewstring*****\n"
2)、请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。
当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,
10.0,16.0},结果为:
avg=15.030000。
doublefun(doublex[10])
inti;
longt;
doubleavg=0.0;
doublesum=0.0;
for(i=0;
10;
【1】;
avg=sum/10;
avg=【2】;
t=【3】;
avg=(double)t/100;
returnavg;
doubleavg,x[10]={15.6,19.9,16.7,15.2,
18.3,12.1,15.5,11.0,10.0,16.0};
\nTheoriginaldatais:
\n"
printf("
%6.1f"
x[i]);
\n\n"
avg=fun(x);
average=%f\n\n"
avg);
3)、请补充函数fun(),该函数的功能是:
从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。
不区分大小写,不能使用字符串库函数。
例如,输入:
“A=abc+5*c”,结果为:
a=2,b=1,c=2。
#defineN100
voidfun(char*tt,intalf[])
char*p=tt;
26;
while(*p)
{
if(*p>
='
*p<
Z'
)
【2】;
z'
alf[*p-'
]++;
p++;
}
charstr[N];
chara='
intalf[26],k;
\nPleaseenteracharstring:
scanf("
%s"
str);
\n**Theoriginalstring**\n"
puts(str);
fun(str,alf);
\n**Thenumberofletter**\n"
for(k=0;
k<
k++)
if(k%5==0)
printf("
%c=%d"
a+k,alf[k]);
4)、从键盘上输入两个整数m和n,求其最大公约数。
{inta,b,num1,num2,temp;
scanf("
%d,%d"
&
num1,&
num2);
if(【1】)
{temp=num1;
num1=num2;
num2=temp;
a=num1;
b=num2;
while(b!
=0)
{temp=【2】;
a=b;
b=temp;
printf("
a,num1*num2/a);
二、智力题(30分)
1、单选题:
(每小题4分,5小题,共20分)
1)给你8颗小石头和一架托盘天平。
有7颗石头的重量是一样,另外一颗比其它石头略重,除此之外,这些石头完全没有分别。
你不得假设那颗石头到底比其它的石头重了多少。
请问:
最少要称量几次,你才能把那颗较重的石头找出来?
A
1次
B
2次
C
3次
D
4次
2)一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。
问他赚了多少?
1块
2块
3块
4块
3)
1块钱一瓶汽水,喝完后两个空瓶换一瓶汽水。
问:
你有20块钱,最多可以喝到几瓶汽水?
37瓶
38瓶
39瓶
40瓶
4)
有一牧场,已知养牛27头,6天把草吃尽;
养牛23头,9天把草吃尽。
如果养牛21头,那么几天能把牧场上的草吃尽呢?
并且牧场上的草是不断生长的。
12天
13天
14天
15天
5)有四个人要在深夜通过一座桥。
这座桥最多只能承受两个人的重量,而且必须打着手电筒才能通过。
四个人只有一把手电筒,并且每个人的行走速度也不一样:
第一个人通过这座桥要花1分钟,第二个人要花2分钟,第三个人要花5分钟,第四个人要花10分钟;
如果两人同行,他们就只能以比较慢的那个人的速度前进。
这四个人全部通过这座桥的最短时间是多少?
15分钟
17分钟
19分钟
21分钟
2、推理(共10分)
假设有一个池塘,里面有无穷多的水。
现有2个空水壶,容积分别为5升和6升。
问题是如何只用这2个水壶从池塘里取得3升的水。
三、编程题(20分`二选一)
1、在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。
所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。
要求:
输入年份,输出是:
判断该年是否包含黑色星期五,如包含,给出具体日期
2、小明去银行存钱,拿了一堆硬币。
已知1角的硬币厚度为1.8mm,5角的硬币厚1.5mm,1元的硬币为2.0mm。
小明将1角的硬币放成一摞,将5角的硬币硬币放成一摞,将1元的硬币放成一摞,发现3摞硬币一样高。
银行正好把这些硬币换成若干张面值为10元的纸币。
问小明至少带了多少钱的硬币(元为单位),每种面值的硬币有多少个?
要求输出格式为:
1角的数量,5角的数量,1元的数量,总金额。
(例如:
20,30,40,50)
说明在结果中只输出各个对应的数字即可