《c程序设计》考试试题2Word文件下载.docx
《《c程序设计》考试试题2Word文件下载.docx》由会员分享,可在线阅读,更多相关《《c程序设计》考试试题2Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。
5);
”后,i的值为
A,3B,4C,5D,6
10、C语言中进行乘方运算,例如求a的3次方,可以使用_______
A,a^3B,a**3C,pow(a,3)D,power(a,3)
11、C语言中的返回值是由_______决定的。
A,return语句中的表达式类型B,调用该函数的主调函数类型
C,调用函数时临时决定D,定义函数时所指定的函数类型
12、在一个源文件中定义的外部变量的作用域是_______
A,本文件的全部范围B,本程序的全部范围C,本函数的全部范围
D,从定义该变量的位置开始至本文件结束
13、在一个C圆程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是_______
A,externB,registerC,autoD,static
14、调用strlen(“abcd\0ef\0g”)的返回值是_______
A,4B,5C,8D,9
15、若用数组名作为函数调用时的实参,则实际上传递给形参的是_______
A,数组首地址B,数组的第一个元素值C,数组中全部元素的值
D,数组元素的个数
16、已知:
charstr1[20]=”abcde”,str[20]=”xyz”;
则执行语句:
printf(“%d”,strlen(strcpy(str1,str2)));
输出结果是_______
A,9B,3C,5D,8
17、以下不能对二维数组a进行正确初始化的语句是_______
A,inta[2][3]={0}B,inta[][3]={{1,2},{0}}
C,inta[2][3]={{1,2},{3,4},{5,6}}D,inta[][3]={1,2,3,4,5,6}
18、在C语言中,二维数组在内存中的存放顺序是_______
A,按行存放B,按列存放C,由用户自己定义D,由编译器决定
19、选择正确的说明语句
A,inta[‘a’]B,inta[3,4]C,inta[][]D,inta(*a)[10]
20、已知:
chars[10],*p=s,则在下列语句中,错误的语句是_______
A,p=s+5;
B,s=p+sC,s[2]=p[4]D,*p=s[0]
21、C语言主函数main最多允许有_______个参数
A,1B,2C,0D,3
22、已知:
intx[]={1,3,5,7,9,11},*ptr=x;
则能正确引用数组元素的语句是_______
A,xB,*(ptr--)C,x[6]D,*(--ptr)
23、下列结论中正确的有_______
A,所有的递归程序均可以采用非递归算法实现
B,只有部分递归程序可以用非递归算法实现
C,所有的递归程序均不可以采用非递归算法实现
D,以上说法都不对
24、在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了funA,则_______
A,称为函数的直接递归B,称为函数的间接递归
C,称为函数的递归定义D,C语言中不允许这样的递归形式
二、阅读程序
1、编译执行下列程序,结果是
#include<
stdio.h>
main()
{
inti=6,y=4,z=2;
pintf(“%d\n”,i/y%z);
}
A,错误信息,不能执行B,0C,1D,2
2、下面程序的输出是
#defineSUB(X,Y)(X)*Y
{inta=3,b=4;
printf(“%d\n”,SUB(a++,b++));
A,12B,15C,16D,20
3、阅读程序,选择运行结果
{charc=’A’;
if(‘0’<
=c<
=’9’)
printf(“YES”);
else
printf(“%d,%d\n”,a,b);
A,YESB,NOC,YESNOD,语句错误
4、阅读程序,选择运行结果
{inta,b,c;
a=1;
b=2;
c=3;
if(a>
b)
if(a>
c)
printf(“%d”,a);
elseprintf(“%d”,a);
printf(“%d\n”,c);
A,12B,23C,3D,以上都不对
5、若运行下列程序时,输入以下指定数据,请选择正确的执行结果
{ints;
while((s=getchar())!
=’\n’)
{switch(s-‘2’)
{case0:
case1:
putchar(s+4);
case2:
putchar(s+4);
break;
case3:
putchar(s+3);
default:
putchar(s+2);
}
printf(“\n”);
自第一列开始输入:
2473〈CR〉
A,6688766B,66778777C,668966D,668977
6、下面程序的运行结果是
{inti=1;
while(i<
=15)
if(++i%3!
=2)continue;
elseprintf(“%d”,I);
7、下面程序的运行结果是
voidmain()
{intj,i,k=0;
for(j=11;
j<
=30;
j++)
{if(k%10==0)printf(“\n”);
for(i=2;
i<
j;
i++)
if(!
(j%i))break;
if(i>
=j-1)
{printf(“%d\t”,j);
k++;
8、请选择下列程序的运行结果
fun(int*p)
{inta=10;
p=&
a;
++a;
{inta=5;
fun(&
a);
printf(“%d\n”,a);
A,5B,6C,10D,11
9、请选择下列程序的运行结果
#include<
try()
{staticintx=3;
x++;
return(x);
{inti,x;
for(i=0;
=2;
x=try();
printf(“%d\n”,x);
A,3B,4C,5D,6
10、请选择下列程序的运行结果
intd=1;
fun(intp)
{intd=5;
d+=a++;
printf(“%d“,d)
{inta=3;
fun(a);
d+=a++;
printf(“%d”,d);
A,84B,96C,94D,85
11、写出程序执行结果
{intx=10;
{intx=20;
printf(“%d,“,x);
12、写出程序执行结果
{intx=1;
voidf1(),f2();
f1();
f2(x);
printf(“x=%d\n”,x);
voidf1(void)
{intx=3;
printf(“x=%d\t”,x);
voidf2(x)
intx;
{printf(“x=%d\t”,++x);
13、请选择下列程序的运行结果
{inti,k,a[10],p[3];
k=5;
10;
a[i]=i;
p[i]=a[i*(i+1)];
k+=p[i]*2;
printf(“%d\n”,k);
A,20B,21C,22D,23
14、写出程序执行结果
#include“stdio.h”
{charstr[30];
gets(str);
printf(“%s\n”,str);
运行程序,输入:
FortranLanguage
15、写出程序执行结果
string.h>
main()
{charstr[100]=”Howdoyoudo”;
strcopy(str+strlen(str)/2,”esshe”);
printf(“%s\n”,str);
16、下面程序的功能是把字符串s中所有的‘c’删除。
请选择填空。
{chars[80];
inti,j;
gets(s);
for(i=j=0;
s[i]!
=’\0’;
I++)
if(s[i]!
=’c’)();
s[j]=’\0’;
puts(s);
A,s[j++]=s[i]B,s[++j]=s[i]C,s[j]=s[i]D,s[j]=s[i]
17、请选择下列程序的运行结果
{staticinta[2][3]={{1,2,3},{4,5,6}};
intm,*ptr;
ptr=&
a[0][0];
m=(*ptr)*(*(ptr+4));
printf(“%d\n”,m);
A,15B,48C,24D,无定值
18、请选择下列程序的运行结果
{staticchara[]=”language”;
char*ptr=a;
while(*ptr)
{printf(“%c”,*ptr-32);
ptr++;
A,LANGUAGEB,陷入死循环C,有语法错误D,language
19、写出程序的运行结果
charb[]=”program”;
char*a=”PROGREM”;
{inti=0;
printf(“%c%s\n”,*a,b+1);
while(putchar(*(a+i)))i++;
printf(“i=%d\n”,i);
while(--i)
putchar(*(b+i));
printf(“\n%s\n”,&
b[3]);
20、写出程序的运行结果
#include<
voidfun(char*w,intm)
{chars,*p1,*p2;
p1=w;
p2=w+m-1;
while(p1<
p2)
{s=*p1++;
p1=p2--;
*p2=s;
{staticchara[]=”ABCDEFG”;
fun(a,strlen(a));
puts(a);
21、选择程序的运行结果
#include”stdio.h”
{intx;
x=try(5);
printf(“%d\n”,x);
try(intn)
{if(n>
0)
return(n*try(n-2));
else
return
(1);
A,15B,120C,1D,以上都不对
22、选择程序的运行结果
longfib(intn)
2)
return(fib(n-1)+fib(n-20);
return
(2);
{printf(“%ld\n”,fib(6));
A,8B,16C,30D,以上都不对
23、选择程序的运行结果
#include“stdio.h”
main()
{inta,i,j;
2;
{a=f(4+i);
printf(“%d\n”,a);
f(intm)
{staticintn=0;
m/=2;
m=m*2;
if(m)
{n*=m;
return(f(m-2));
elsereturn(n);
1、第一次输出结果:
A,8B,0C,64D,4
2、第二次输出结果:
A,8B,0C,64D,4
24、写出程序的运行结果
bin(intx)
{if(x/2>
0)bin(x/20;
printf(“%d”,x%2);
{bin(12);
三、程序填空:
1、函数primedec(m)是求整m的所有素数因子,并输出。
例如:
m=120时,输出的素数因子为:
2,2,2,3,5,
程序如下:
primedec(intm)
{intk=2;
while(k<
=m)
if(m%k__1__)
{printf("
%d,"
k);
__2__;
__3__;
2、main函数利用函数abcd来交换main中的两个变量的值。
#include<
main()
{intx=10,y=20;
abcd(__1__);
printf("
%d,%d\n"
x,y);
abcd(x,y)
{inttemp;
temp=__2__;
__4__;
3、程序读入20个整数,统计非负数个数,并计算非负数之和。
{inti,a[20],s,count;
s=count=0;
for(i=0;
i<
20;
i++)
scanf("
%d"
__1__);
{if(a[i]<
__2__;
s+=a[i];
count++;
printf("
s=%d\tcount=%d\n"
s,count);
4、下面程序的功能是:
从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。
{charstr[81],*ptr;
inti;
80;
{str[i]=getchar();
if(str[i]=='
\n'
)break;
str[i]=__1__;
sptr=str;
while(*sptr)
putchar(*sptr__2__);
四、编程:
1编程解决“百钱百鸡”问题。
其中:
一只公鸡五块钱,一只母鸡三块钱,三只小鸡一块钱,请编程输出所有的解。
2编写一个程序,要求能提示用户输入年月日,并输出该天为该年的第几天。
例:
输入:
2001,3,19输出:
78
3输入n值,输出相对应的图形。
##
n=3#
n=2#
n=1#