计算机类二级C

2013年9月全国计算机等级《二级C语言程序设计》上机临考冲刺试卷(4)

43 题含答案C
共 43 题返回本类
1单选题1 / 43
定义下列结构体(联合)数组:
struct st
{ char name[15];
int age;
}a[10]={"ZHA0",14,"WANG",15,"LIU",16," ZHANG",17);
执行语句printf("%d,%C",a[2].age,*(a[3].name+ 2))的输出结果为( )。
查看答案
C. 16,A
2单选题2 / 43
有以下程序:
main()
{int i,j;
for(j=10;j<11;j++)
{ for(i=9;i<J;I++)
if(!(j%i))break;
if(i==j-1)
printf("%d",j);
}
}
输出结果是( )。
查看答案
B. 10
3单选题3 / 43
下列程序的输出结果是( )。
#include
main()
{ int i;
for(i=1;i<=10,i++)
{ if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}
查看答案
C. 25
4单选题4 / 43
设fun()函数的定义形式为
void fun(char ch,float x){…}
则下列对函数fun的调用语句中,正确的是( )。
查看答案
C. fun('65',2.8);
5单选题5 / 43
若a为int类型,且其值为3,则执行完表达式a+= a-=a*a后,a的值是( )。
查看答案
C. -12
6单选题6 / 43
若有以下定义:
char a;int b;
float c;double d;
则表达式a*b+b-c值的类型为( )。
查看答案
D. double
7单选题7 / 43
若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )。
查看答案
C. scanf("%d",p);
8单选题8 / 43
若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<B?A:C<D?C:D的值是(&NBSP;&NBSP;&NBSP; )。
查看答案
C. 3
9单选题9 / 43
有以下程序:
main( )
{ int k=5,n=0;
do
{ switch(k)
{ case 1:
case 3:n+=l;k--;break;
defalut:n=0;k--;
case 2:
case 4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是( )。
查看答案
B. 0235
10单选题10 / 43
能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是( )。
查看答案
C. (x>=1)&&(x<=10)||(x>=100)&&(x<= 110)
11单选题11 / 43
设有定义:“int a;float b;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b 的值分别是( )。
查看答案
B. 87和6.000000
12单选题12 / 43
用链表表示线性表的优点是( )。
查看答案
C. 便于捅入和删除操作
13单选题13 / 43
若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是( )。
int t[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]= &t[k][0];
查看答案
C. t[1][2]
14单选题14 / 43
已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字堪的表达式是( )。
查看答案
B. 'A'<=c<='Z '
15单选题15 / 43
若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是( )。
for(i=6;i>0;i--)
for(j=0;j<4;j++){…}
查看答案
B. 24
16单选题16 / 43
下列叙述中错误的是( )。
查看答案
A. 在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
17单选题17 / 43
有以下程序:
void swap(char*x,char*y)
{ char t;
t=*x;*x=*y;*y=t;
}
main()
{ char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是( )。
查看答案
C. 1bc,a23
18单选题18 / 43
有以下程序:
fun(int x)
{ int P;
if(x==0 || x==l)return(3);
p=x-fun(x-2);
return p;
}
main()
{printf("%d\n",fun(7));}
程序执行后的输出结果是( )。
查看答案
C. 2
19单选题19 / 43
对线性表进行二分法检索,其前提条件是( )。
查看答案
A. 线性表以顺序方式存储,并按关键码值排好序
20单选题20 / 43
若有说明“char s1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是( )。
查看答案
D. s1的内容更新为abcdefghi\0
21单选题21 / 43
有下列程序:
main()
{int i,s=0,t[]={1,2,3,4,5,6,7,8,9);
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是( )。
查看答案
C. 25
22单选题22 / 43
下列程序的输出结果是( )。
main()
{ int a,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
查看答案
B. 2,1
23单选题23 / 43
下列程序的运行结果是( )。
#include
void fun(int*S,int*p)
{ static int t=3:
*p=s[t];
t--;
}
void main()
{ int a[]={2,3,4,5),k;
int x;
for(k=0,k<4,k++)
{ fun(a,&x);
printf("%d,",x);
}
}
查看答案
A. 5,4,3,2
25单选题25 / 43
在单链表中,增加头结点的目的是( )。
查看答案
A. 方便运算的实现
26单选题26 / 43
下列叙述中正确的是( )。
查看答案
A. 只能在循环体内和switch语句体内使用break语句
27单选题27 / 43
下列程序的输出结果是( )。
#include
main( )
{ int i,S=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}
查看答案
D. 6
28单选题28 / 43
有以下程序:
main()
{ int a[]=(2,4,6,8,10},y=0,x,*P;
p=&a[1];
for(x=1;x<3;x++) y+=p[x];
printf("%d\n,y");
}
程序运行后的输出结果是( )。
查看答案
C. 14
29单选题29 / 43
下列程序的运行结果是( )。
#include
#define ADD(x) x+x
main()
{ int m=1,n=2,k=3;
int S=ADD(m+n)*k;
printf("s=%d",s);
}
查看答案
B. sum=10
31单选题31 / 43
若有定义和语句:
int**pp),*P,a=20,b=10;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);
则输出结果是( )。
查看答案
D. 10,10
33单选题33 / 43
有以下程序:
int fun(int x)
{ int p;
if(x==0||x==1)return(3);
p=x-fun(x-2);
return p;
}
main()
{ printf("%d\n",fun(7));}
执行后的结果是( )。
查看答案
C. 2
34单选题34 / 43
有以下程序
#include
void fun(char**p)
{++p;printf("%s",*p);}
main()
{char*a[]={"Morning","Afternoon","Evening"," Night");
fun(a);
}
程序的运行结果是( )。
查看答案
A. Afternoon
35单选题35 / 43
在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是( )。
查看答案
A. 数据库系统
36单选题36 / 43
下面程序输出的是( )。
main()
{ int t=l;fun(fun(t));}
fun(int h)
{ static int a[3]={1.2.3};
int k;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("\n");
return(a[h]);}
查看答案
D. 1,3。5,
-1,3,7,
37单选题37 / 43
以下程序的输出结果是( )。
main()
{int x=0.5;char z='a';
printf("%d\n",(x&1)&&(z<'2'));}
查看答案
B. 1
39单选题39 / 43
以下程序的输出结果是( )。
main()
{ char w[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
查看答案
D. EFGH
UKL
40单选题40 / 43
有以下程序:
#include
main()
{ int x=4,y;
do
{ y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的输出结果是( )。
查看答案
B. yyyy
41主观题41 / 43
请补充函数proc(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:1234567,结果输出:7654321。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填人所编写的若干表达式或语句。
试题程序:
#include
#include
#include stdio.h>
#include
unsigned long proc(char*str)
{
unsigned long t=0:
int k:
int i=0;
i=str|en(str);
for(【1】 ;i>=0;i--)
{
k= 【2】 ;
t= 【3】 ;
}
return t;
}
void main()
{
char str[8];
system("CLS");
printf("Enter a string made up of'0'to
'9 ' digital character:\n");
gets(str);
printf("The string,is:%s\n",str);
if(strlen(str)>8)
printf("The string is too tong!");
else
printf("The result:%1u\n",
proc(str));
}
查看答案
【1】--i【2】str[i]-'0 '【3】t*10+k
42主观题42 / 43
下列给定程序中,函数p roc()的功能是:先将字符串s 中的字符按顺序存放到t中,然后把S中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
#include
void proc(char*s,char*t)
{
int i,s1;
s1=strlen(s);
for(i=0;i<S1;I++)
//****found****
t[i]=s[s1];
for(i=0;i<S1;I++)
t[s1+i]一s[i];
t[2*s1]='\O0;
}
void main()
{
char s[100],t[100];
system("CLS");
print{("\nPlease enter string s:");
scanf("%s",s);
proc(s,t);
printf("The result is:%s\n",t);
}
查看答案
错误:t[i]=s[l];正确:t[i]=s[i];
43主观题43 / 43
请编写函数proc(),该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为
13 23 33 43
14 24 34 44
15 25 35 45
则一维数组中的内容应该是13 23 33 43 14 24 34 44 15 25 35 45。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
void proc(int(*s)[103,int*b,int*n,int rain.int nn)
{
}
void main()
{
int arr[10][10]={{33,33,33,33),{44,44,44,44},
{55,55,55,55}),i,j;
int a[l00]={o),n=o;
printf("The matrix:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%3d",arr[i][j]):
printf("\n");
}
proc(arr,a,&n,3,4):
printf("The A array:\n");
for(i=0;i<N;I++)
printf("%3d",a[i]):
printf("\n\n");
}
查看答案
voiD proC(int(*s)[10],int*B,int*n,int mm,int nn)
{
int i,j,k=0;
For(i=0;i<mm;i++)//i是表示其行的下标
For(j=0;j<nn;j++)//j是表示其列的下标
B[k++]=s[i][j]; //把其放到B的一维数组中
*n=k; //把B数组的长度通过形参n传回到主函数中
}
← 上一卷下一卷 →