计算机类二级C

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

43 题含答案C
共 43 题返回本类
1单选题1 / 43
下列程序的输出结果是( )。
#included stdi0.h>
#included string.h>
void fun(int b[])
{ static int i=0;
do
{ b[i]+=b[i+1];
}while(++i<2);
}
main()
{ int k,a[5]={1,3,5,4,9};
fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);
}
查看答案
C. 48549
2单选题2 / 43
若有定义:“int a=4,b=5;float x=3.4,y=2.1;”,则下列表达式的值为( )。
(float)(a+b)/2+(int)x%(int)y;
查看答案
C. 5.500000
3单选题3 / 43
已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是( )。
查看答案
B. c=c+32
4单选题4 / 43
一个关系中属性个数为1时,称此关系为( )。
查看答案
C. 一元关系
5单选题5 / 43
下列叙述中正确的是( )。
查看答案
D. 以上三种说法都不对
6单选题6 / 43
有以下程序
int fun(int x,int y){return(x+y);} main()
{ int a=1,b=2,C=3,sum;
sum=fun((a++,b++,a+b),c++
printf("%d\n",sum);)
执行后的输出结果是( )。
查看答案
C. 8
7单选题7 / 43
面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是( )。
查看答案
C. 使用现实世界的概念抽象地思考问题从而自然地解决问题
8单选题8 / 43
有以下程序:
viod fun(int a,int b,int c)
{ a=456:b=567;c=678;}
main()
{ int x=10,y=20,z=30;
fun(x,y,z):
printf("%d,%d,%d\n",x,y,z);
}
输出的结果是( )。
查看答案
B. 10,20,30
9单选题9 / 43
以下叙述中错误的是( )。
查看答案
C. 可以给指针变量赋一个整数作为地址值
10单选题10 / 43
有下列函数定义:
fun(float h)
{ printf("%f,%f\n",h,h*h);)
该函数的类型是( )。
查看答案
A. int类型
12单选题12 / 43
函数fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始点是( )。
查看答案
B. 文件末尾
13单选题13 / 43
有以下程序
#include
main()
{int y=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的运行结果是( )。
查看答案
C. 852
14单选题14 / 43
以下程序的输出结果是( )。
main( )
{ int i,a[4] [4]一{{1,3,5),{2,4,6},{3,5,7}};
printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2]
[1],a[3][0];
}
查看答案
A. 0650
15单选题15 / 43
下列选项不符合良好程序设计风格的是( )。
查看答案
D. 模块设计原则是高耦合、高内聚
16单选题16 / 43
C语言结构体类型变量在程序执行期间,( )。
查看答案
A. 所有成员一直驻留在内存中
17单选题17 / 43
为了提高软件的独立性,模块之间最好是( )。
查看答案
D. 数据耦合
18单选题18 / 43
下列叙述中正确的是( )。
查看答案
C. break语句只能用在循环体内和switch语句体内
19单选题19 / 43
下列程序的运行结果是( )。
main()
{ int x=1,y=3,a=0;
while(x++!=(y-=l))
{ a+=1;
if(y<X)BREAK;
}
printf("%d,%d,%d\n",x,y,a);
}
查看答案
D. 3,1,2
20单选题20 / 43
以下程序执行后sum的值是( )。
main()
{ int i,sum;
for(i=1;i<6;i++)sum+=i:
printf("1%d\n",sum):
}
查看答案
C. 不确定
21单选题21 / 43
读取二进制文件的函数调用形式为:fread(buffer size,count,fp);,其中buffer代表的是( )。
查看答案
C. 一个内存块的首地址,代表读人数据存放的地址
22单选题22 / 43
有下列程序:
int funl(double a){return a*=a;)
int fun2(double x,double y)
{ double a=0,b=0;
a=funl(x);b=funl(y);return(int)(a+h);
}
main()
{double w;w=fun2(1.1,2.0),……)
程序执行后变量w中的值是( )。
查看答案
C. 5.0
23单选题23 / 43
以下只有在使用时才为该类型变量分配内存的存储类型说明是( )。
查看答案
B. auto和register
25单选题25 / 43
若有定义“float a=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。
查看答案
C. *p=a是将变量a的值赋予变量b,而&a是使P指向变量a
26单选题26 / 43
下列数据结构中,能用二分法进行查找的是( )。
查看答案
A. 顺序存储的有序线性表
27单选题27 / 43
数据的存储结构是指( )。
查看答案
B. 数据的逻辑结构在计算机中的存放形式
28单选题28 / 43
下列叙述中错误的是( )。
查看答案
C. 线性表的所有结点有且仅有一个前件和后件
29单选题29 / 43
若有以下程序:
int a=1,b=2:
a=a^b:
b=b^a:
则执行以上语句后a和b的值分别是( )。
查看答案
B. a=3,b=l
30单选题30 / 43
下列叙述中正确的是( )。
查看答案
D. 一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
32单选题32 / 43
已知有如下结构体:
struct sk
{ int a;
float b;
}data,*p;
若有P=&data,则对data的成员a引用正确的是( )。
查看答案
B. (*p).a;
33单选题33 / 43
若执行以下程序时从键盘上输入9,则输出结果是( )。
main( )
{ int n;
scanf(”%d”,&n);
if(n++<10)printf(”/%d\n”,n);
else printf(”%d\n”,n--);
}
查看答案
B. 10
34单选题34 / 43
下列程序的输出结果是( )。
#include
int fun(int a)
{ int b=0;
static int c=4:
a=c++:b++;
return(a):
main()
{ int a=2,i,c;
for(i=0:i<2;i++)
c=f(a+1):
printf("%d\n",c);
}
查看答案
D. 5
35单选题35 / 43
以下叙述中错误的是( )。
查看答案
C. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
36单选题36 / 43
软件生命周期是指( )。
查看答案
B. 软件从需求分析、设计、实现到测试完成的过程
37单选题37 / 43
有以下程序段
int j;float y;char name[50]:
scanf("%2d%f%s",&i,&.y,name):
当执行上述程序段,从键盘上输入55566 7777abc后,y 的值为( )。
查看答案
B. 566.0
38单选题38 / 43
若输入“abcdef”“abdef”,下述程序的输出结果为( )。
#include
#include
main()
{ int n;
char s1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
查看答案
D. "abdef"
39单选题39 / 43
下列程序执行后的输出结果是( )。
void func(int*a,int b[])
{ b[0]=*a+b;}
main()
{ int a,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
查看答案
A. 6
40单选题40 / 43
#define能作简单的替代,用宏来替代计算多项式5 *x*x+5*x+5的值的函数f,正确的宏定义语句为( )。
查看答案
C. #define f(a) (5*a*a+5*a+5)
41主观题41 / 43
请补充函数proc(),函数proc()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#inelude<STDIO.h>
long proc(int n)
{
if(【1】)
return(n*proc(【2】);
else if(【3】)
return 1;
}
void main()
{
int k=7;
printf("%d!=%1d\n",k,proc(k));
}
查看答案
【1】n&gt;1【2】n-1 【3】n==1
42主观题42 / 43
下列给定程序中,函数proc()的功能是计算正整数m 各位上数字的平方和。
例如,输入498,则输出应该是161。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<STDLIB.h>
#include<STDIO.h>
#include<CONIO.h>
long proc(10ng m)
{
//****found****
long sum=1;
do
{
sum+=(m%10)*(m%10);
m/=l0;
//****found****
}
while(m)
return(sum);
}
void main()
{
long n;
system("CLS");
printf("Please enter a number:");
scanf("%1d",&n);
printf("\n%ld\n",proc(n));
}
查看答案
1.错误:long sum=1;
正确:long sum=0;
2.错误:while(m)
正确:while(m);
43主观题43 / 43
假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。
例如,若字符串中的内容为****a*bc*def*g** **,删除后,字符串中的内容则应当是a*bc*def*g** **。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<STDIO.h=:{>
#include<CONIO.h>
woid proc(char*st r)
{
}
void main()
char str[81];
printf("Enter a string:\n");
gets(str);
proc(str):
printf("The string after deleted:\n");
puts(str);}
查看答案
void proc(char*str)
{
char*p=str:
while(*p=='*')p++;//通过P的移动来达
到使P指向第一个不是*号的字符
for#;*p!='\0 ';p++,str++#//把从第一个
不是*号的字符放到a中 ‘
 *str=* P: *str='\0 ';
//最后用'\0'作为字符串结束标志
}
← 上一卷下一卷 →