仲恺农业技术学院C语言试题.docx
《仲恺农业技术学院C语言试题.docx》由会员分享,可在线阅读,更多相关《仲恺农业技术学院C语言试题.docx(8页珍藏版)》请在冰豆网上搜索。
仲恺农业技术学院C语言试题
仲恺农业技术学院.C语言
A卷共7页
班次姓名学号成绩
(注:
试题做在后面的答题纸上)
一.选择填空(选择一个正确答案,将其对应字母填在横线上)(20分)
1.C程序中,一个float数据在内存中占字节;
A:
2B:
4C:
1D:
5
2.C语言中,正确的字符串表示是;
A:
“123”B:
‘123’C:
‘AB’D:
‘\101’
3.若a是int型变量,b是float型变量,以下输入语句合法的是;
A:
scanf(“%f%f”,&a,&b)B:
scanf(“%c%d”,&a,&b)
C:
scanf(“%d%f”,&a,&b)D:
scanf(“%d%f”,a,b)
4.C语言中,char类型和long类型数据在内存中分别占个字节;
A:
2,4B:
1,4C:
1,2D:
2,2
5.intr=0xab;其中0xab表示是数;
A:
十进制;B:
错误数据;C:
十六进制;D:
八进制
6.如果x=25,执行if(x)x=5;语句时,该x为;
A:
“真”B:
“假”C:
25D:
5
7.如果j=a[1]=3;执行a[3]=++a[1];a[3]+=a[3]+j;a[3]的值是;
A:
8B:
10C:
9D:
11(12)
8.设inta,b,c;且a=10;b=4;a/=b;则表达式(a%b?
b:
a)之值是;
A:
4B:
-4;C:
2;D:
-2
9.对于指针int*p与数组inta[20]={1,2,3};其正确的赋值语句是__;
A:
p=a[0];B:
*p=a[0];C:
*p=a;D:
p=a;
10.设intx,a,b,c;计算表达式x=(a=4,b=16,c=32)后,x的值是(逗号语句);
A:
4B:
16C:
32D:
52
11.对于inta[][3]={{1,2,3},{4,5,6},{7}};intn=2,m=3;语句,
且有:
数据元素a[n-1][0]+a[m-3][1]的值为_________;
A:
8B:
7C:
5D:
6
12.已知inti=j=2;chara[]="abcdefg",c;
执行c=a[i+j++];c的值是__________。
A.‘c’B:
‘f’C:
‘d’D:
‘e’
13.For(;x=3;);代表的意义是;
A:
死循环B:
不循环C:
循环3次D:
语法错误
14.对于表达式53/2&&!
0和!
(15>3||5<6-8)的逻辑值,分别是;
A:
0,1B:
1,0C:
0,0;D:
1,1
15.在C语言中,下面运算符优先级最高的是
A:
++B:
/C:
+D:
=
16.设charw;intx;floaty;表达式有由于y=(w*x-15)中的y值的数据类型为
A:
charB:
intC:
floatD:
double
17.在C语言中,intx=4;执行x=5>2&&x<2语句,其x的值为________
A:
1B:
0C:
5D:
2
18.charc=‘a’;intn=2
switch(c+2)
{case‘a’:
n=n+1;
case‘b’:
n=n*2;
case‘c’:
n=n-2;
case‘d’:
n=n+3;break;
default:
n=n/2;
}
n的正确结果值是________
A:
2B:
3C:
4D:
5
19.程序段的结果是
inti=1;
while(++i)
if(i>5)break;
A:
死循环B:
循环5次C:
循环4次D:
循环6次
20.程序段的结果是
intk=0;
do
{k+=2/2;
}while(k>0);
A:
死循环B:
循环1次C:
循环2次D:
循环3次
二.读下列程序,写出程序的运行结果(每题5分,共30分)
1.main()
{inti=1,j=2,m=3,n=4;
n=n/3;
m=++i;n=m%j++;
printf(“i=%dj=%d\n”,i,j);
printf(“m=%dn=%d”,m,n);
}
结果:
i=2;j=3;
m=2;n=0;
2.main()
{inta[20],b=2;
for(a[b]=b;b<=6;b++)
{a[b+1]=b+1;
if(b>4)break;
b++;
}
printf(“b=%d”,b);
}
结果:
b=6;
3.
#include“stdio.h”
main()
{charch=‘F’;
intx
scanf("%d",&x);
if(x>=3)
ch=ch+x;
else
ch=ch-x;
putchar(ch);
}
1)输入2,运行结果为:
D;
2)输入3,运行结果为:
I;
4.
main()
{
inta[3][3]={1,2,3,4,5,6};
int*p1=a,*p2=a+4;
printf("p1=%d,p2=%d\n",*p1,*p2);
printf("n=%d,a=%d\n",p2-p1,a[2][2]);
}
输出为:
p1=1;p2=5;
n=4;a=0;
5.
main()
{inti;
char*a=“ABCDEF”,b[10];
for(i=3,a++;i<=5;i++,++a)
b[i]=*a;
b[i]='\0';
printf(“b=%s”,b);
}
输出为:
b=DEF;
三.程序填空(每题6分,共24分)
1.从键盘输入密码字符,判断该密码是否是ABCDEF。
#include“stdio.h”
main()
{staticcharstr[]="ABCDEF";
charb[6];
inti,flag=1;
for(i=0;i<6;i++)b[i]=getchar();
for(i=0;i<6;i++)
if(b[i]!
=str[i])
{flag=0;break;}
if(flag==1)
printf(“密码正确!
”);
else
printf(“密码不正确!
”);
}
2.打印如下图形的C程序,选择合适的句子填入该空格中。
11111
222
3
程序:
main()
{inti,j,k,n;
for(i=0;i<=2;i++)
{n=1;
for(j=0;j<=i;j++)
printf(““);
for(k=0;k<=4-2*i;k++)
printf(“%d”,n);
printf(“\n”);
n++;
}
}
3.用选择法对数组为10个整数进行由大到小排序,选择合适的句子填入该空格中。
main()
{inti,a[15];
voidsort(intarray[],intn);
for(i=0;i<10;i++)scanf("%d",&a[i]);
sort(a,10);
printf("thesortedarray:
\n);
for(i=0;i<15;i++)printf("%d",a[i]);
}
voidsort(intarray[],intn)
{inti,j,k,t;
for(i=0;i{k=i;
for(j=i+1;jif(array[j]>array[k])k=j;
t=array[k];array[k]=array[i];array[i]=t;
}
}
4.有3个字符串,要求找出其中最大者,其程序如下,选择合适的句子填入该空格中。
#include
main()
{chara[50],b[3][50];
inti;
for(i=0;i<3;i++)
gets(b[i]);
if((strcmp(b[0],b[1]))>0)strcpy(a,b[0])
elsestrcpy(a,b[1])
if(strcmp(b[2],a)>0)strcpy(a,b[2])
printf(“maxchar=%s\n”,a);
}
四.编写程序(26分)
1.输入5个整数,判断该5个数中有那些是素数(质数),并输出。
(10分)
2.编写一个子函数和主函数的程序,实现2!
+4!
+6!
的功能。
(16分)
要求:
(1)要求主函数实现累加;
(2)子函数,实现累乘。
1.
#include“stdio.h”
Intmain()
{
inta[5],i,k;
printf(“Pleaseinput5number”);
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
printf(“Thenumberis:
”);
for(i=0;i<5;i++)
{
For(k=2;kIf(a[i]%k==0)
Break;
If(k>=a[i])
Printf(“%d”,a[i]);
}
Return0;
}
2.
#include
#include
Intmain()
{
Intabc(intx);
Inta=2,b=4,c=6,d=0;
A=abc(a);
B=abc(b);
C=abc(c);
D=a+b+c;
Printf(“theresultis:
\n2!
+4!
+6!
=%d”,d);
Getch();
Return0;
}
Intabc(intx)
{
Intz=1;
For(i=1;i<=x;i++)
Z=z*I;
Returnz;
}