计算机二级考试C语言模拟试题(三)
单项选择题
1、 以下程序运行后的输出结果是( )。
A.z
B.0
C.元素Ch[5]地址
D.字符y的地址
2、 有如下嵌套的if语句:
以下选项中与上述if语句等价的语句是( )。
A.
B.
C.
D.
3、有以下程序:
程序运行后的输出结果是( )。
A.SunDan 2004 2
B.SunDan 2004 4
C.LiSiGuo 2004 2
D.YangSan 2004 1
A.SunDan 20042
B.SunDan 20044
C.LiSiGuo 20042
D.YangSan 20041
4、 现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。
struct node
{har data;
struct node*next;)*p,*q,*r;
现要将q和r所指结点交换前后位嚣,同时要保持链表的结构,下列不能完成此操作的语句是( )。
A.q->next=r->next;p->next=r;r->next=q;
B.q->next=r;q-->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.q->next=q;p->next=r;q->next=r->next;
5、 下列叙述中正确的是( )。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
6、
关系数据库管理系统能实现的专门关系运算包括( )。
A.排序、索引、统计
B.选择、投影、连接
C.关联、更新、排序
D.显示、打印、制表
填空题
7、
简答题
8、
假定输人的字符串中只包含字母和*号。请编写函数proc(),它的功能是:使字符串中前部的*号不得多余m 个;若多余m个,则删除多余的*号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为****A*BC*DEF*G* ***,若m的值为2,删除后,字符串中的内容则应当是* *A*BC*DEF*G****;若m的值为4,则字符串中的内容仍为****A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用c语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
void proc(char*a,int n)
{
}
void main()
{ char str[81];int m;
printf("Enter a string:\n");gets(str);
printf("Enter m:");scanf("%d",&m);
proc(st,m)。
printf("The string after deleted:\n");
puts(str);
}
9、下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCIl码升序排序后输出。
例如,输入opdye,则应输出deopy。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include%string.h>
#include%stdlib.h>
#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 st/[81];
system("CLS");
printf("\nPlease enter a character
string:");
gets(str);
printf("\nknBefore sorting:\n %s",str);
proc(str);
printf("\nAfter sorting decendingly:\n
%S",str);
}
10、
编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为abcdefabcdeabceabcdef,子字符串为cd,则应当输出3。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
#include
int proc(char*str.char*substr)
{
}
void main()
{
char str[81].substr[3];
int n:
system("CLS"):
printf("输入主字符串:");
gets(str);
printf("输入子字符串:");
gets(substr):
puts(str);
puts(substr):
n=proc(str,substr);
printf("n=%d\n",n);
}
一对一 咨询课程
点我开始