特意为大家整理的09年4月全国计算机等级二级C语言考前练习,希望对大家的备考有好的帮助!
1.若有如下程序:
void s(char *m,int n)
{*m=*m+3;n=n+3;
printf("%c,%c,",*m,n);}
main()
{char p=′b′,q=′B′;
s(&q,p);
printf("%c,%c\n",p,q);}
则程序运行后的输出结果是()
A)E,e,b,E
B)e,E,b,F
C)E,e,e,E
D)e,E,b,E
2.在C语言的函数中()
A)必须有形参
B)形参必须是变量名
C)可以有也可以没有形参
D)数组名不参与形参
3.若有如下程序:
sub(int *t,int n)
{int *p1,*p2;
for(p1=t,p2=t;p1-t<n;p1++)
if(*p1<*p2)p2=p1;
return(*p2); }
main()
{int a[9]={9,36,19,39,26,5,6,33,15};
printf("%d\n",sub(a,9)); }
则程序运行后的输出结果是()
A)5
B)9
C)15
D)39
4.在表示C语言的整型变量时,表示“无符号整型”的符号是()
A)unsigned int
B)unsigned short
C)long int
D)unsigned long
5.以下程序段给数组所有的元素输入数据,请选择正确答案填入。()
#include<stdio.h>
main()
{ int a[10],i=0;
while(i<10) scanf("%d",);
…
}
A)a+(i++)
B)&a[i+1]
C)a+i
D)&a[i++]
6.若输入60和13,以下程序的输出结果为()
#define SURPLUS(a,b)((a)%(b))
main()
{ int a,b;
scanf("%d,%d",&a,&b);
printf("\n",SURPLUS(a,b));
}
A)60
B)13
C)73
D)8
7.在下列叙述中,正确的一条是()
A)语句int *pt中的*pt是指针变量名
B)语句“int *p=a;”等价于“int *p;p=&a[0];”
C)运算符*和&都是取变量地址的运算符
D)已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值
8.设有定义:#defineSTR"12345";,则以下叙述中正确的是()
A)宏名STR代替的是数值常量12345
B)宏定义以分号结束,编译时一定会产生错误信息
C)宏名STR代替的是字符串"12345";
D)宏名STR代替的是字符串常量"12345"
9.fprintf函数的一般调用方式是()
A)fprintf(格式字符串,文件指针,输出表列);
B)fprintf(文件指针,格式字符串,输出表列)
C)fprintf(文件指针,格式字符串,输出表列);
D)fprintf(fp,格式字符串,输出表列);
10.函数调用语句:fseek(fp,-20L,SEEK_END);的含义是()
A)将文件位置指针移到距离文件头20个字节处
B)将文件位置指针从当前位置向后移动20个字节
C)将文件位置指针从文件末尾处向后退20个字节
D)将文件位置指针移到离当前位置20个字节处
答案:1.A 2.C 3.A 4.A 5.D 6.D 7.D 8.C 9.C 10.C
11.下面程序的输出结果是()
func (int x)
{ static int a=2;
return (a+=x); }
main()
{ int b=2, c=4, d;
d=func (b);
d=func (c);
printf("%d\n",d); }
A)4
B)6
C)8
D)12
12.以下程序运行后的输出结果是()
main()
{ chars[]="1234",*ps;
for(ps=s;ps<s+3;ps++) printf("%c",ps);
printf("\n");
}
A)123
B)112123
C)1234
D)乱码
13.以下关于宏的叙述中正确的是()
A)宏名必须用大写字母表示
B)宏替换时要进行语法检查
C)宏替换不占用运行时间
D)宏定义中不允许引用已有的宏名
14.如果文件1包含文件2,文件2中要用到文件3的内容,而文件3中要用到文件4的内容,则可在文件1中用三个#include命令分别包含文件2、文件3和文件4。在下列关于这几个文件包含顺序的叙述中,正确的一条是()
A)文件4应出现在文件3之前,文件3应出现在文件2之前
B)文件2应出现在文件3之前,文件3应出现在文件4之前
C)文件3应出现在文件2之前,文件2应出现在文件4之前
D)出现的先后顺序可以任意
15.有以下程序段
main()
{ char a[7]="abcdef";
char b[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
}
程序段运行后的输出结果是()
A)a
B)\0
C)e
D)f
16.下面程序的输出结果是()
# include<stdio.h>
f (b,n)
int b[], n;
{ int i, r;
r=1;
for (i=0; i<=n; i++)
r=r*b[i];
return r;
}
main ()
{ int x, a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
}
A)720
B)120
C)24
D)6
17.下面程序的输出结果是()
# include"stdio.h"
fun (x)
intx;
{
int y=0;
static int z=5;
z=x++,y++;
return (z);
}
main ()
{
int a=4, i, j;
for(i=0; i<2; i++)
j=fun (a++);
printf ("%d",j);
}
A)0
B)3
C)4
D)5
18.对于以下程序段,设a和q都是整型变量,
…
a=q;
Loop∶if(a==0)goto End;
Else if(a>0){printf("&");a--;goto Loop;}
Else goto End;
End;
…
不能与上面程序等价的是()
A)a=q;
do
{f(a<0)break;
a--;printf("*");
}while(a);
B)a=q;
for(;a>0;a--)printf("&");
C)a=q;
while(a)
{ printf("&");a--;}
D)for(a=q;a>0;--a,printf("*"));
19.有以下程序
#include<stdio.h>
#define PT 5.5
#define S(x) PT*x*x
main()
{int a=1,b=2;
printf("%4.1f\n",S(a+b));
}
程序运行后的输出结果是()
A) 49.5
B) 9.5
C) 22.0
D) 45.0
20.设有以下语句:
structSS
{intno;charname[10];}PERSON;
则下面叙述中错误的是()
A)struct是结构体类型的关键字
B)struct SS是结构体类型
C)PERSON是结构体类型名
D)name是结构体成员名
答案:1.C 2.D 3.C 4.A 5.D 6.B 7.D 8.C 9.B 10.C
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/