2013年9月全国计算机等级《二级C语言程序设计》考前冲刺试卷一
-
请编写一个函数proc,它的功能是:求出1~m(含m) 能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
例如,若传给m的值为70,则程序输出:
7 11 14 21 22 28 33 35 42 44 49 55 56 63 66 70
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#include
#define N 100
void proc(int m,int*a,int*n)
{
}
void main
{
int arr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k
if((k+1)%20==0)//每行输出20个数
{ printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
-
下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。
例如,输入opdye,则应输出deopy。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
#include
//****found****
int proc(char str[])
{
char c;
unsigned i,j;
for(i=0;i
for(j=i+1;j
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=c;
}
}
void main
{
char str[81];
system("CLS");
printf("\nPlease enter a character
string:");
gets(str);
printf("\n\nBefore sorting:\n%s",str);
proc(str);
printf("\nAfter sorting decendingly:\n
%s",str);
}
-
请补充函数proc,该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,str指向原字符串,删除后的字符串存放在b所指的数组中,c中存放指定的字符。例如,当str输入“abcabcabcab”,c=b时,b的输出为“abcabcaca”;如果str的输入为“abcabcabca”,则b的输出为“abcabcabca”。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅程函数prOC的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
#define M 80
void proc(char str[],char b[],char c)
{
int i=0,j=0;
int n=0:
int m=0:
while(str[i]!='\0')
{
if(str[i]==c)
n++:
i++:
}
【1】;
if(n%2)
{
while(str[j]!='\0 ')
{
b[j]=str[j];
j++;
}
b[j]='\0';
}
else
{
while(str[i]!='\0 ')
{
b[j++]=str[i];
if(str[i]==c)
m++:
if((m>n/2)&&(str[i]==c))
【2】;
i++:
}
【3】;
}
}
void main
{
char str[M],b[M];
char C;
system("CLS");
printf("Enter the strin9:\n");
gets(str);
printf("Enter the character of the
string deleted:"):
scanf("%C",&c);
proc(str,b,c);
printf("The new string is:%s\n",b);
}
-
结构化程序设计的3种结构是( )。
- A.顺序结构、选择结构、转移结构
- B.分支结构、等价结构、循环结构
- C.多分支结构、赋值结构、等价结构
- D.顺序结构、选择结构、循环结构
-
有以下程序:
main
{ int num[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{ for(j=0;j
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式输出数组右上半三角
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是( )。
- A.i-1
- B.i
- C.i+1
- D.4一i
-
设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是( )。
- A.(EXP==0)
- B.(EXP!=0)
- C.(EXP==1)
- D.(EXP!=1)
-
设有二元关系R和三元关系s,下列运算合法的是( )。
- A.R∩S
- B.R∪S
- C.R-S
- D.R×S
-
下列判断正确的是( )。
- A.char a="ABCD":等价于char*a;*a="ABCD":
- B.char str[10]={"ABCD"}:等价于char str[10];str []={"ABCD"};
- C.char*s="ABCD":等价于char s;*s="ABCD";
- D.char c[5]="ABCD",d[5]="ABCD":等价于char c [5]-d[5]="ABCD";
-
下列叙述中错误的是( )。
- A.列表框和组合框都有List属性
- B.列表框有Selected属性,而组合框没有
- C.列表框和组合框都有Style属性
- D.组合框有Text属性,而列表框没有
-
以下程序的输出结果是( )。
main
{ int a[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf(”%d\n”,s);
}
- A.18
- B.19
- C.20
- D.21
-
以下正确的字符串常量是( )。
- A."\\\"
- B.'abc'
- C.Olympic Games
- D.""
-
设有以下语句:
int a=1,b=2,c;
c=a^(b<<2);
执行后,c的值为( )。
- A.6
- B.7
- C.8
- D.9
-
有以下程序:
main
{ int x,i;
for(i=l;i<=50;i++)
{ x=i:
if(x%2=0)
if(x%3=0)
if(X%7=0)
printf(”%d,i)”;
}
}
输出结果是( )。
- A.28
- B.27
- C.42
- D.4l
-
运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。
main
{ float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a{t=a;a=b.b=t;)
if(a
{t=a;a=c;c=t;)
it(b
{t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
- A.1.00 2.00 3.00
- B.1.00 3.00 2.00
- C.1 3 2
- D.3.00000 2.00000 1.00000
-
设x=011050,则x=x&01252的值是( )。
- A.0000001000101000
- B.1111110100011001
- C.0000001011100010
- D.1100000000101000
-
定义结构体数组:
struct stu
{ int num;
char nameE20];
}X[5]={1,"LI",2,"ZHAO",3,"WANG",4," ZHANG",5,"LIU");
for(i=1;i<5;i++)
printf("%d%c",x[i].num,x[i].name[2]);
以上程序段的输出结果为( )。
- A.2A3N4A5U
- B.112A3H4I
- C.1A2N3A4U
- D.2H3A4H5I
-
有以下程序段:
int x=3;
do
{printf("%d",x-=2);)
while(!(--x));
其输出结果是( )。
- A.1
- B.3 0
- C.1 -2
- D.死循环
-
下列叙述中不正确的是( )。
- A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
- B.在C的函数中,最好使用全局变量
- C.外部变量可以在函数之间传递数据
- D.自动变量实质上是一个函数内部的局部变量
-
有以下程序:
main
{ union
{ char ch[2];
int d;
}s;
d=0x4321;
printf("%x,%x\n",S.ch[0],S.ch[l]);
}
在16位编译系统上,程序执行后的输出结果是( )
- A.21,43
- B.43,21
- C.43,00
- D.21,00
-
数据库系统的核心是( )。
- A.数据模型
- B.数据库管理系统
- C.数据库
- D.数据库管理员
-
语句:“printf("%d",(a=)&&(b=-2));”的输出结果是( )。
- A.无输出
- B.结果是不确定
- C.-1
- D.1
-
设int x=7,则~x的值是( )。
- A.-8
- B.7
- C.-1
- D.1
-
以下程序的输出结果是( )。
#define M(x,y,z)x*y+z
main( )
{ int a=l,b=2,c=3;
printf("%d\n",m(a+b.b+c,c+a));
}
- A.19
- B.1 7
- C.15
- D.12
-
作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是( )。
- A.存储媒体
- B.表现媒体
- C.传输媒体
- D.感觉媒体
-
若已包括头文件
且已有定义char sl [18],s2={"ABCDE")和int i,现要将字符串”ABCDE”赋给sl,下列语句错误的是( )。 - A.strcpy(s1,s2)
- B.strcpy(s1,"ABCDE");
- C.sl="ABCDE";
- D.for(i=0;i<6;i++)sl[i]=s2[i]
-
软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指( )。
- A.模块间的关系
- B.系统结构部件转换成软件的过程描述
- C.软件层次结构
- D.软件开发过程
-
视图设计一般有3种设计次序,下列不属于视图设计次序的是( )。
- A. 自顶而下
- B.由内向外
- C.由外向内
- D.自底向上
-
当执行下面的程序时,如果输入ABC,则输出结罘是( )。
#include
#include
main( )
{ char ss[10]="1,2,3,4,5":
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
- A.ABC6789
- B.ABC67
- C.12345ABC6
- D.ABC456789
-
下列程序的运行结果为( )。
#include
main
{ struct date
{int year,month,day;
}today;
printf("%d\n",sizeof(struct date));
}
- A.8
- B.6
- C.10
- D.12
-
下列关于信息系统的叙述中,错误的是( )。
- A.广播电视是一种双向的、点到多点的信息交互系自
- B.网络聊天是一种双向的,以信息交互为主要目的系统
- C.电话是一种双向的、点对点的、以信息交互为主要的的系统
- D.雷达是一种以感测和识别为主要目的的系统
-
有以下程序:
main
{ int i,n=0:
for(i=2;i<5;i++)
{ do
{ if(i%3) continue:
n++:
}while(!i);
n++:
}
printf("n=%d\n",n);
}
程序执行后输出结果是( )。
- A.n=5
- B.n=2
- C.n=3
- D.n=4
-
已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
- A.A,B
- B.A,68
- C.65,66
- D.65,68
-
当用户要求输入的字符串中含有空格时,应使用的输入函数是( )。
- A.scanf
- B.getchar
- C.gets
- D.getc
-
若希望下列的程序运行后输出25,程序空白处的正确选项是( )。
main
{ int i,j=50,a[]=(7,4,10,5,8};
for( )
j+=a[i];
printf("%d",j-40);
}
- A.i=1;i<4;++i
- B.i=l;i<3;++i c.i="4;i">2;i--
- D.i=2;i<4;++i
-
若有以下的定义:‘int t[3][2];”,能正确表示t数组元素地址的表达式是( )。
- A.&t[3][2]
- B.t[3]
- C.t[l]
- D.t[2][2]
-
执行下列程序后,输出的结果是( )。
#include
#define S(X) X*X
void main
{ int a=9,k=3,m=2;
- a/=S(k+m)/S(k+m): printf("%d",a); }
- A.1
- B.4
- C.9
- D.0
-
两个或两个以上模块之间联系的紧密程度称为( )。
- A.耦合性
- B.内聚性
- C.复杂性
- D.数据传输特性
-
下列程序的输出结果是( )。
#include
main
{ int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
- A.19
- B.1
- C.6
- D.8
-
交换两个变量的值,不允许用临时变量,应该使用下列( )位运算符。
- A.&
- B.^
- C.||
- D.~
-
有如下程序:
main
{ int a=2,b=-1.c=2;
if(aelse c++;
printf("%d\n",c);
}
该程序的输出结果是( )。
- A.0
- B.1
- C.2
- D.3
-
以下叙述中正确的是( )。
- A.预处理命令行必须位于C源程序的起始位置
- B.在C语言中,预处理命令行都以“#”开头
- C.每个C程序必须在开头包含预处理命令行:#include
- D.C语言的预处理不能实现宏定义和条件编译的功能
-
若有下列定义(设int类型变量占2个字节):
int i=8,j=9;
则下列语句:
printf("i=%%d,j=%%d\n",i,j);
输出的结果是( )。
- A.i=8,j=9
- B.i=%d,j=%d
- C.i=%8,j=%9
- D.8,9
-
下列描述错误的是( )。
- A.继承分为多重继承和单继承
- B.对象之问的通信靠传递消息来实现
- C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
- D.类是具有共同属性、共同方法的对象的集合