2015年全国计算机等级《二级C语言程序设计》冲刺试卷五
-
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G ****”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include
#include
void fun(char a)
{
void main
{
char s[81];
print{("Enter a string:\n");
gets(s):
fun(S);
printf("The string after deleted:\n");
puts(s);
}
-
请补充main函数,该函数的功能是:先以只写方式打开文件file.dat,再把字符串S中的字符保存到这个磁盘文件中。请勿改动main函数与其他函数中的任何内容,仅在的横线上填写所需的若干表达式或语句。
注意:部分源程序给出如下。
试题程序:
#include
#include
#define N 100
void main
{
FILE*f:
int i=0:
char ch;
char s[N]="Welcome!";
if((f=fopenl("【1】","w"))==NULL)
{
printf("cannot open file.dat\n");
exit(0);
}
while(s[i])
{
ch=s[i];
【2】;
putchar(ch);
i++:
}
【3】;
}
-
下列给定程序中,函数ptoc的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;再把第4个字符插入前三个字符中,待排序的字符串已
在主函数中赋予。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#define M 80
void proc(char*arr)
{ int i,j,n;char ch;
n=strlen(arr):
for(i=1;i
//****found****
{ c=arr[i];
j=i-1;
while((j>=o)&&(ch{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
void main
{
char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("The original string:%s\n",a);
proc(a);
printf("The string after sortin9:
%s\n\n",a);
}
-
下列程序的输出的结果是( )。
main
{ double d=3.2;int x,y;
x=1.2;v=(x+3.8)/5.0;
printf("%d\n",d*y);
}
- A.3
- B.3.2
- C.0
- D.3.07
-
下列合法的声明语句是( )。
- A.int abc=50;
- B.double int=3+5e2.5;
- C.long do=1L;
- D.float 3 asd=3e一3;
-
在Internet中,域名服务器的主要功能是实现( ) 的转换。
- A.IP地址到域名(主机名字)
- B.域名到IP地址
- C.主机IP地址和路由器IP地址之间
- D.路由器IP地址之问
-
以下程序的输出结果是( )。
union myun
{ struct
{int x,y,z;)u;
int k:
}a;
main
{ a.u.x=4;a.u.y=5;a.u.z=6;
k=0;
printf(%d\n",a.u.x);
}
- A.4
- B.5
- C.6
- D.0
-
若有说明语句:double*p,a;则通过scanf语句正确给输入项读入数据的程序段是( )。
- A.*p=&a;scanf("%1f”,p);
- B.*p=&a;scanf("%f",p);
- C.p=&a;scanf("%",*p);
- D.p=&a;scanf("%1f",p);
-
设变量已正确定义,则以下能正确计算f=n!的程序是( )。
- A.f=0;for(i=1;i<=n;i++)f*=i;
- B.f=1;for(i=l;i<2n;i++)f*=i;
- C.f=l;for(i=n;i>1;i++)f*=i;
- D.f=1; for(i=n;i>=2;i--)f*=i;
-
有以下程序:
main
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序运行后的输出结果是( )。
- A.b,b
- B.b,c
- C.a,b
- D.a,c
-
当c的值不为0时,在下列选项中不能正确将c的值赋给变量a、b的是( )。
- A.
- A.a=b=c;
- B.(a=c)
- C.(a=c)&&(b=c);
- D.(b=c);
-
有以下程序
#include
void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{int t,i,j;
for(i=0;i
for(j=i+l;j
if(a[i]}
main
{int c[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是( )。
- A.1,2,3,4,5,6,7,8,9,0,
- B.0,9,8,7,6,5,1,2,3,4,
- C.0,9,8,7,6,5,4,3,2,1,
- D.1,2,3,4,9,8,7,6,5,0,
-
相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。
- A.可重用性差
- B.安全性差
- C.非持久性
- D.冗余性
-
在下列语句中,其含义为“q是一个函数指针,该指针指向整型数据”的定义语句是( )。
- A.int**q;
- B.int(*q);
- C.int*q;
- D.int*q();
-
有下列程序:
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;m=i+x+y;return m;
}
main( )
{ int j=1,m=1,k;
k=fun(j,m);print S(”%d,”,k);
k=fun(j,m);printf(”%d\n”,k);
)
执行后的输出结果是( )。
- A.5,5
- B.5,11
- C.11,11
- D.11,5
-
C语言可执行程序的开始执行点是( )。
- A.包含文件中的第一个函数
- B.程序中第一个函数
- C.程序中的main( )函数
- D.程序中第一条语句
-
在下列给出的表达式中,与while(E)中的(E)不等价的表达式是( )。
- A.(!e==0)
- B.(e>0||e<0)
- C.(e==0)
- D.(e!=0)
-
下述程序的输出结果是( )。
#include
void main
{ int b[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
- A.4,4
- B.2,2
- C.4,5
- D.2,4
-
下列程序的输出结果是( )。
void fun(int*X,int y)
{ printf("%d%d",*x,*y);*x=3;*y=1;}
main
{ int x=1,y=2;
fun(&y,&x);
printf("%d%d",x,y);
}
- A.2 1 4 3
- B.1 2 1 2
- C.1 2 3 4
- D.2 1 1 2
-
语句int(*ptr)的含义是( )。
- A.ptr是一个返回值为int的函数
- B.ptr是指向int型数据的指针变量
- C.ptr是指向函数的指针,该函数返回一个int型数据
- D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
-
当执行以下程序段时,( )。
x=-l:
do{x=x*x;)while(!x);
- A.循环体将执行一次
- B.循环体将执行两次
- C.循环体将执行无限次
- D.系统将提示有语法错误
-
按照“先进后出”原则组织数据的结构是( )。
- A.队列
- B.栈
- C.双向链表
- D.二叉树
-
下列说法正确的是( )。
- A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
- B.在c语言中,数组元素的个数可以不确定,允许随机变动
- C.在C语言中,数组元素的数据类型可以不一致
- D.在C语言中,定义一个数组后,就确定了它所容纳的元素的个数
-
下述程序的运行结果是( )。
#included stdio.h>
#included strin9.h>
main
{ char*s1="abDuj";
char*s2="ABdUG";
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
- A.正数
- B.负数
- C.零
- D.不确定的值
-
执行下述程序后,输出的结果是( )。
#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
-
若有定义语句:“char sE10]="1234567\0\0";”,则strlen(s)的值是( )。
- A.7
- B.8
- C.9
- D.10
-
有下列程序:
main
{ int y=10;
do{y--;}while(--y);
printf("%d\n",--y);
)
当执行程序时,输出的结果是( )。
- A.-1
- B.1
- C.4
- D.0
-
设x为int型变量,则执行以下语句后,x的值为( )。
x=10;x=x-=x-x;
- A.10
- B.20
- C.40
- D.30
-
若有定义“int a=5,b=7;”,则表达式a%=(b%2) 运算后,a的值为( )。
- A.0
- B.1
- C.11
- D.3
-
下列字符数组初始化语句中,不正确的是( )。
- A.char c[]='goodmorning';
- B.char c[20]="goodmorning";
- C.char c[]={'a','b ','c ','d');
- D.char c[]={"ffgoodmorning"};
-
若变量a,b已正确定义,且b已正确赋值,则合法的语句是( )。
- A.b=double(b);
- B.(int)a=(int)b;
- C.a=a++=5;
- D.a=double(b);
-
常采用的两种存储结构是( )。
- A.顺序存储结构和链式存储结构
- B.散列方法和索引方式
- C.链表存储结构和数组
- D.线性存储结构和非线性存储结构
-
有下列程序段:
int n,t=1,S=0;
scanf("%d",&n);
do{s=s+t;t=t-2;while(t!=n);
为使此程序段不陷入循环,从键盘输入的数据应该是( )。
- A.任意正奇数
- B.任意负偶数
- C.任意正偶数
- D.任意负奇数
-
函数调用strcat(strcpy(str1,str2),str3)的功能是( )。
- A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
- B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
- C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后
- D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中
-
对两个数组a和b进行下列初始化:
char m[]1="l234567":
char n[]={'1','2 ','3','4 ','5','6','7');
则下列叙述正确的是( )。
- A.数组m与数组n完全相同
- B.数组m与数组n长度相同
- C.数组m比数组n长1
- D.数组m与数组n中都存放字符串
-
执行下列程序中的输出语句后,a的值是( )。
main
{ int a;
printf("%d\n",(a=2*3,a*5,a+7));
}
- A.17
- B.37
- C.6
- D.13
-
下列关于栈的描述中错误的是( )。
- A.栈是先进先出的线性表
- B.栈只能顺序存储
- C.栈具有记忆作用
- D.对栈的插入删除操作中,不需要改变栈底指针
-
有下列二叉树.对此二叉树前序遍历的结果为( )。
- A.ACFXDBEYZ
- B.ABEFXYZCD
- C.ABCDEFXY7
- D.ABDYECFXZ
-
有以下程序:
main
{int a=0,b=0;
- a=10; /*给a赋值
- b=20; 给b赋值 */ printf("a+b=%d\n",a+b);//输出计算机结果 } 程序运行后的输出结果是( )。
- A.a+b=10
- B.a+b=30
- C.30
- D.出错
-
以下程序的输出结果是( )。
main
{ int a=3:
printf("%d\n",(a+a-=a*a));
}
- A.-6
- B.12
- C.0
- D.-12
-
执行下面的程序后,a的值为( )。
main
{ int a,b;
for(a=1,b=1;a<=10;a++)
{ if(b%3==l)
{ b+=3;
continue;}
b-=5;}}
- A.7
- B.8
- C.9
- D.10
-
若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( )。
- A.EOF
- B.-l
- C.非零值
- D.0
-
有定义:“int a=2,b=3,c=4;”,则下列选项中值为0的表达式是( )。
- A.(aB.(!a==1)&&(!b==0)
- C.a&&b
- D.a||(b+b)&&(c-a)