窗体顶端
福建省C语言二级考试模拟试卷之四
一、选择题。(本大题共40个选项,【1】~【40】每个选择项1.5分,共60分)
1.用数组名作为函数的实参时,它传递给函数是【1】。
【A】
A)数组的首地址
B)整个数组
C)数组的第一个数值
D)数组的全部地址
2.联合(union)变量所占的内存变量长度为【2】。
【C】
A)最短的成员的长度
B)所定义的变量的内存总和
C)最长的成员的长度
D)占有一个成员的长度
3.程序查错,指出错误原因。
下面程序要求输出确定的a、b值:
main()
{
int a,b;
a=b+10;
printf("a=%d,b=%d\n",a,b);
}
该程序:【3】
【C】
A)程序没有错
B)b没有赋初值,a和b都有确定的值
C)b没有赋初值,a和b都没有确定的值
D)a和b都没有赋值
4.下列程序运行的正确结果是【4】。
#include
int x,y;
two()
{
int a=25,b=10;
int x,y;
x=a-b;
y=a+b;
return;
}
main()
{
int a,b;
a=9; b=5;
x=a+b;
y=a-b;
two();
printf("%d,%d\n",x,y);
}
【A】
A)14,4
B)13,35
C)29,39
D)4,14
5.下列程序运行的正确结果是【5】。
main()
{
union
{ int count[2]
char ch[4];
} un;
int i;
char letter=6;
for(i=0;i<4;i++) un.ch[i]=letter++;
for(i=0;i<4;i++) printf("%d\t",un.ch[i]);
printf("\n");
}
【D】
A)9
8
7
6
B)7
8
9
0
C)0
7
8
9
D)6
7
8
9
6.下列程序运行的正确结果是【6】。
#include
four(int x,int y)
{
int z;
z=x; x=y; y=z;
return;
}
main()
{
int a=9;b=5;
int x,y,*ptr1,*ptr2;
ptr1=&x;
ptr2=&y;
*ptr1=a+b;
*ptr2=a-b;
four(*ptr1,*ptr2);
printf("%d,%d\n",x,y);
}
【C】
A)4,14
B)9,5
C)14,4
D)5,9
7.下列程序运行的正确结果是【7】。
#include
main()
{ int i=0;j=10,k=2,s=0;
for(;;)
{ i+=k;
if(i>j)
{ printf("%d\n",s);
break;
}
s=s+i;
}
}
【C】
A)18
B)20
C)30
D)10
8.下列程序运行的正确结果是【8】。
#include
int x,y;
one()
{ int a,b;
a=25; b=10;
x=a-b;
y=a+b;
return;
}
main()
{ int a,b;
a=9; b=5;
x=a+b;
y=a-b;
one();
printf("%d,%d\n",x,y);
}
【D】
A)14,4
B)4,14
C)29,39
D)15,35
9.设有说明语句int x=2,y=3;
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式x=(y==3)的值为【9】。
【B】
A)0
B)1
C)2
D)3
10.数学关系式x≤y≤z可用C语言的表达式表示为【10】。
【A】
A)(x<=y)&&(y<=z)
B)(x<=y)AND(y<=z)
C)(x<=y<=z)
D)(x<=y)&(y<=z)
11.若表达式!x的值为1,则表达式【11】的值为1。
【C】
A)x=0
B)x==1
C)x!=1、、x==0
D)x!=0
12.在C程序中,使用结构体的目的是【12】。
【A】
A)将一组相关的数据作为一个整体,以便程序使用。
B)将一组相同数据类型的数据作为一个整体,以便程序使用。
C)将一组数据作为一个整体,以便其中的成员共享存储空间。
D)将一组数值一一列举出来,该类型变量的值只限于列举的数值范围内。
13.设a=2、b=3、c=4,则表达式(a+b>c)&&(b==c)&&a||(b+c)&&(b+c)的值为【13】。
【D】
A)5
B)8 C)0
D)1
14.下列程序的输出结果为【14】。
#include
main()
{
int i;
for(i=100;i<200;i++){
if(i%5==0) continue;
printf("%d\n",i);
break;
}}
【A】
A)100
B)101
C)无限循环
D)无输出结果
15.下列程序的输出结果为【15】。
#include
main()
{
static int a[]={1,3,5},b[]={2,6,10};
int i,s=0;
for(i=0;i<3;i++) s+=a[i]/b[i];
printf("%d\n",s);
}
【A】
A)0
B)1
C)1.5
D)2
16.下列程序输出结果为【16】。
#include
f()
{
static c=3;
c++;从4开始
return(c);
}
main()
{
int i,k;
for(i=0;i<2;i++)从0开始 k=f();0-4,1-5,2-6
printf("%d\n",k);
}
【D】
A)3
B)5
C)4
D)6
17.属于整型常量的是【17】。
【A】
A)12
B)12.0
C)-12.0
D)10E10
18.设整型变量a为5,使b不为2的表达式是【18】。
【C】
A)b=a/2
B)b=6-(--a)
C)b=a%2
D)b=a>3?2:1
19.设整型变量n的值为2,执行语句“n+=n-=n*n(此处改变了n的赋值变为-2);”后,n的值是【19】。
【C】
A)0
B)4
C)-4
D)2
20.设f为实型变量,下列表达式中不是逗号表达式的是【20】。
【D】
A)f=3,4,5
B)f=(3,2,1,0)
C)f>=3,f<2,0
D)f=2,f=1
21.设有以下一程序段:
char s[]="Hello";
char *p;
p=s;
执行完上面的程序段后,*(p+5)的值为【21】。
【B】
A)'o'
B)'\0' C)'o'的地址
D)不确定的值
22.运行下面程序后的w值为【22】。
main()
{
int w=2,k;
for(k=0;k<3;k++)
{
w=f(w);
printf("%d\n",w);
}
}
f(x)
int x;
{
int y=0;
static z=3;
y++;
z++;
return(x+y+z);
}
【A】
A)20
B)7
C)28
D)13
23.已知字符“A”的ASCII代码值是65,字符变量c1的值是'A'、c2的值是'D'。
执行语句“printf("%d,%d",c1,c2-2);"后,输出结果是【23】。
【D】
A)A,B
B)A,68
C)65,68
D)65,66
24.整型变量a、b、c分别为2、3、4,运算表达式“a*=16+(b++)-(++c)”后,a的值是【24】,b的值是【25】,c的值是【26】。
【D】
A)31
B)30
C)29
D)28
【C】
A)2
B)3
C)4
D)5
【C】
A)-5
B)-4
C)5
D)4
25.若w=1,x=2,y=3,z=4,则条件表达式w
main()
{
char s1[6],s2[6],s3[6],s4[6];
scanf("%s%s",s1,s2);
gets(s3);
gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
上面的程序运行时输入数据如下:
aaa bbb
ccc ddd
【a】
A)
aaa
B)
aaa
C)
aaa
D)aaa bbb
bbb
bbb
bbb
ccc
ccc
ccc ddd
ddd
ccc ddd
ddd
28.设有以下程序:
#include
main()
{
int **p,*p1,i=10;
p1=&i;
p=&p1;
printf("%d\n",**p);
}
上面的程序的输出结果是【30】 。
【A】
A)10
B)i的地址 C)p1的地址
D)运行错误
29.#include
static int a=5;
main()
{
printf("a=%d\n",a);
p1();
p2();
}
p1()
{
printf("a*a=%d\n",a*a);
a=8;
return;
}
p2()
{
printf("a*a*a=%d\n",a*a*a);
return;
}
程序运行结果题: 【31】 。
【A】
A)
a=5
B)
a=5
a*a=25
a*a=25
a*a*a=125
a*a*a=512
C)
a=5
D)
a=8
a*a=64
a*a=64
a*a*a=512
a*a*a=512
30.下列程序正确的运行结果为 【32】 。
#include
main()
{
int j=4;m=1,k;
k=fun(j,m);
printf("%d",k);
k=fun(j,m);
printf("%d\n",k);
}
fun(x,y)
int x,y;
{
static int m=0,i=2;
i+=m+1;
m=i+x+y;
return(m);
}
【c】
A)8,20
B)8,8
C)8,17
D)8,16
31.若运行下列程序时,输入以下指定数据,则正确的运行结果为【33】 。
#include
main()
{
int s;
while ((s=getchar())!='\n')
{
switch(s-'2')
{
case 0:
case 1: putchar(s+4);
case 2: putchar(s+4); break;
case 3: putchar(s+3);
case 4: putchar(s+2); break;
default: putchar(s+2);
}
}
printf("\n");
}
输入数据(第1列):2473<回车>
【d】
A)446955
B)448966
C)668966
D)668977
32.以下程序段的输出为【34】。
static char a[]="Basic";
char *ptr;
for(ptr=a;ptr
main()
{
int s[]={1,2,3,4},i;
int x=0;
for(i=0;i<4;i++)
{
x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
sb(s1,y)
int *s1,y;
{
static int i1=3;
y=s1[i1];
i1--;
return (y);
}
【36】
A)1234
B)4321
C)0000
D)4444
35.C语言程序的基本单位是【37】。
【c】
A)字符
B)程序行
C)语句
D)函数
36.#include
main()
{
int a,b,c,d,e;
a=8512,b=1269,c=2354,d=8795;e=20930;
printf("%d,%d,%d,%d\n",a,b,c,d);
func(a,b,&c,&d,&e);
printf("%d,%d,%d,%d,%d\n",a,b,c,d,e);
}
func(p,q,r,s,t)
int p,q,*r,*s,*t;
{
*t=p+q+*r+*s;
*r=35;
}
程序运行结果为:【38】。
【c】
A)
8512,1269,2354,8795
8512,1269,2354,8795,0
B)
8512,1269,2354,8795
8512,1269,2354,8795,9781
C)
8512,1269,2354,8795
8512,1269,35,8795,20930
D)
8512,1269,2354,8795
8512,1269,2354,8795,20930
37.设有100个学生的考试成绩数据表如下形式:
学号
no
整型
姓名
name
字符数组型
成绩
score
实型
在下面结构数组的定义中,不正确的是【39】 。
【39】
A)
struct student
B)
struct stud[100]
{
{
int no;
int no;
char name[10];
char name[10];
float score;
float score;
}
}
struct student stud[10];
C)
struct student
D)
struct
{
{
int no;
int no;
char name[10];
char name[10];
float score;
float score;
}stud[100];
}stud[100];
38.设a=12,a定义为整型变量。表达式a+=a-=a*=a的值为【40】。
【c】
A)12
B)144
C)0
D)132
二、程序填空:
1.下面的程序是对数组中的数据进行排序。请将适当的表达式填入程序的横线内,使其能完成这一操作。
#include
main()
{
int a[12]={2,4,15,3,17,5,8,23,9,7,11,13},i,j,k;
for(k=0;k<11;k++)
for( 【1】 ;i<12;i++)
if(a[i]> 【2】 )
{
j=a[i];
a[i]= 【3】 ;
【4】 =j;
}
for(i=0;i<12;i++)
printf("%4d",a[i]);
printf("\n");
}
2.下列程序是计算: 的近似值。
#include
#include
main()
{
flaot x,s,t;
int i=0;
s=t=1;
scanf("%f",&x);
while(fabs(t)>1.0e-5){
i++;
t*= 【5】 ;
s+= 【6】 ;
}
printf("%f\n",s);
}
3.用递归法计算整数的阶乘。
float fac(n)
【7】 ;
{ float f;
if(n<0)
{ printf("n<0, data error\n");
return(0.0);
}
else if( 【8】 ) f=1;
else f=n* 【9】 ;
return(f);
}
main( )
{ int n;
float y;
printf("输入一个整数:");
scanf("%d",&n);
y= 【10】 ;
if(y>0)
printf("%d!=%.0f\n",n,y);
}
4.下面的函数delete(s,i,n)从字符串s中删除第i个字符开始的n个字符。
void delete(s,i,n)
char s[ ];
int i,n;
{
int j,k,length=0;
while(s[length]) 【11】 ;
--i;
j=i;
if 【12】 ;
{
k=i+n;
if(i+n<=length)
while( 【13】 )
s[j++]=s[k++];
s[j]='\0';
}
}
5.下面的程序完成3个操作:
(1)输入10个字符串(每串不多于9个字符),依此放在a数组中,指针数组str中的每个元素依此指向每个字符串的开始;
(2)输入每个字符串;
(3)从这些字符串中选出最小的那个串输出。
#include
#include
main()
{
char a[100],*str[10],*sp;
int i,k;
sp= 【14】 ;
for(i=0;i<10;i++)
{
scanf("%s",sp);
str[i]=sp;
k=strlen(sp);
sp+= 【15】 ;
}
for(i=0;i<10;i++)
if(strcmp(str[i],str[k]) 【16】 0) k=i;
【17】 ;
}
6.以下程序把从键盘输入的字符存放到一个文件中,用字符#作为结束符,请按题意要求填空完善程序。
#include
main( )
{
FILE * fp;
char ch,fname[10];
printf("Input the name of file\n");
gets(fname);
if((fp=fopen( 【18】 ))==NULL)
{
printf("can't open\n");
【19】 ;
}
while((ch=getchar())!='#')
fputc( 【20】 );
fclose(fp);
}
窗体底端
PAGE
10
_1336308749.unknown
_1336308765.unknown
_1336308773.unknown
_1336308777.unknown
_1336308779.unknown
_1336310373.unknown
_1336310374.unknown
_1336308780.unknown
_1336308778.unknown
_1336308775.unknown
_1336308776.unknown
_1336308774.unknown
_1336308769.unknown
_1336308771.unknown
_1336308772.unknown
_1336308770.unknown
_1336308767.unknown
_1336308768.unknown
_1336308766.unknown
_1336308757.unknown
_1336308761.unknown
_1336308763.unknown
_1336308764.unknown
_1336308762.unknown
_1336308759.unknown
_1336308760.unknown
_1336308758.unknown
_1336308753.unknown
_1336308755.unknown
_1336308756.unknown
_1336308754.unknown
_1336308751.unknown
_1336308752.unknown
_1336308750.unknown
_1336308733.unknown
_1336308741.unknown
_1336308745.unknown
_1336308747.unknown
_1336308748.unknown
_1336308746.unknown
_1336308743.unknown
_1336308744.unknown
_1336308742.unknown
_1336308737.unknown
_1336308739.unknown
_1336308740.unknown
_1336308738.unknown
_1336308735.unknown
_1336308736.unknown
_1336308734.unknown
_1254147535.unknown
_1336308723.unknown
_1336308729.unknown
_1336308731.unknown
_1336308732.unknown
_1336308730.unknown
_1336308727.unknown
_1336308728.unknown
_1336308724.unknown
_1336308719.unknown
_1336308721.unknown
_1336308722.unknown
_1336308720.unknown
_1336308717.unknown
_1336308718.unknown
_1336308715.unknown
_1336308716.unknown
_1254147536.unknown
_1254147527.unknown
_1254147531.unknown
_1254147533.unknown
_1254147534.unknown
_1254147532.unknown
_1254147529.unknown
_1254147530.unknown
_1254147528.unknown
_1254147523.unknown
_1254147525.unknown
_1254147526.unknown
_1254147524.unknown
_1254147521.unknown
_1254147522.unknown
_1254147519.unknown
_1254147520.unknown
_1254147517.unknown
_1254147516.unknown