国家二级(C语言)机试模拟试卷1013
程序填空题
1.使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blankl.c。在此程序中,函数fun()的功能是在带头节点的单向链表中,查找数据域中值为ch的节点。找到后通过函数值返回该节点在链表中的序号;若不存在值为ch的节点,则函数返回0。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <stdlib.h>
#define N 8
typedef struct list
{ int data;
struct list *next;
}SLTST;
SLIST *creatlist(char*);
void outlist(SLIST *);
int fun(SLIST *h,char ch)
{ SLIST *p; int n=0;
p=h->next;
/*********found*********/
while(p!=【1】)
{ n++;
/*********found*********/
if(p->data==ch)
return 【2】;
else p=p->next;
}
return 0;
}
main()
{ SLIST *head;int k;char ch;
char a[N]={’m’,’P’,’g’,’a’,’w’,’x’,’r’,’d’};
head=creatlist(a);
outList(head);
printf(\\
(1)NULL (2)n (3)head,ch
解析:填空1:while循环语句用来判断是否到达链表结尾,链表结尾节点指针域是NULL。故空1处应该填NULL。
填空2:若找到指定字符,则通过return语句将该节点在链表中的序号返回给main()函数。节点的序号为n。故空2处应该填n。
填空3:函数调用语句,其形式是函数名(实参列表),根据函数定义语句,故空3处应该填head,ch。
程序修改题
2.使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是删除指针p所指字符串中的所有空白字符(包括制表符、回车符及换行符等)。
输入字符串时用“#”结束输入。
请改正程序中的错误,使它能输出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <string.h>
#include <stdio.h>
#include <ctype.h>
fun(char *p)
{
int i,t;char c[80];
/*********found*********/
For(i=0,t=0;p[i];i++)
if(!isspace(*(p+i)))
C[t++]=P[i];
/*********found*********/
C[t]=\\
(1)for(i=0,t=0;p[i];i++)
(2)c[t]=’\0’;
解析:(1)该题目考查c语言关键字的书写,C语言中关键字是区分大小写的。
(2)字符串结尾添加结束标志时应书写为’\0’,而非\\
程序设计题
3.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),其功能是将ss所指字符串中所有下标为奇数的小写字母转换为大写字母(若该位置上不是小写字母,则不转换)。
例如,若输入“abc4EFg”,则应输出“aBc4EFg”。
注意:部分源程序给出如下。
请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun(char *ss)
{
}
void main()
{
char tt[51];
printf(\\
void fun(char *ss)
{
int i;
for(i=0;ss[i]!=’\0’;i++)
/*将ss所指字符串中所有下标为奇数的字母转换为大写字母+/
if(i%2==1&&SS[i]>=’a’&&SS[i]<=’z’)
ss[i]=ss[i]-32;
}
解析:将指定字符串中奇数位置的字母转换为大写字母,首先需要判断奇数位置,再判断该位置字符是不是小写字母,如果是小写字母,则将小写字母转换为大写字母。字母大小写转换操作中,只要将小写字母的ASCII值减去32即可转换为大写字母。
本文档预览:3600字符,共2829字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载