首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷312

国家二级C语言机试(操作题)模拟试卷312

本单篇文档共2781字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 4916人下载
价格: 0.80 原价:¥8.80
收藏

国家二级C语言机试(操作题)模拟试卷312

程序填空题

1.人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#include<string.h>

#define N 8

typedef struct

{

char num[10];

int year,month,day;

}STU;

/*********found*********/

【1】 fun(STU*std,char*num)

{

int i;

STU a={\\

(1)STU

(2)std[i].num

(3)std[i]

解析:本题考查:if条件表达式;比较字符串函数strcmp;指针变量的使用;函数定义及函数返回值。

strcmp函数用来比较两个字符数组的大小,其格式为:strcmp(字符数组1,字符数组2)。若字符数组1>字符数组2,函数值大于0(正数);若字符数组1=字符数组2,函数值等于0;若字符数组1<字符数组2,函数值小于0(负数)。

填空1:根据函数fun的返回值类型可知,函数类型标识符应该是结构体类型的,所以填入STU。

填空2:根据题目说明,找出指定编号人员,并将其数据返回。通过strcmp函数比较编号,若相同则函数值为0,所以填入std[i].num。

填空3:由题目可知,假如编号对应,则返回其编号对应数据,所以填入数据std[i]。

程序修改题

2.下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(如“Z”转化为“A”,“z”转化为“a”),其他字符不变。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

void fun(char*s)

{

/*********found*********/

while(*S!=’@’)

{

if(*S>=’A’&&*s<=’Z’

‖*s>=’a’&&*s<=’z’)

{

if(*s==’Z’)*S=’A’;

else if(*s==’z’)*S=’a’;

else *s+=1;

}

/*********found*********/

(*s)++;

}

}

void main()

{

char s[80];

system(\\

(1)while(*s)或while(*s!=’\0’)

(2)s++;

解析:(1)通过while语句可对字符串所有字符进行遍历,循环条件是对当前字符进行判断,若当前字符不是字符串结尾,则对其进行其他操作。

(2)因为该循环通过指针s的移动遍历字符串,所以每循环一次要使指针向后移动一个位置,而不是将指针所指的元素加1。

程序设计题

3.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

void fun(char*a)

{

}

void main()

{

char s[81];

print;f(\\

void fun(char*a)

{

int i,j=0;

for(i=0;a[i]!=’\0’;i++)

if(a[i]!=’*’)

a[j++]=a[i];

/*若不是要删除的字符’*’则保留*/

a[j]=’\0’;

/*最后加上字符串结束符’\0’*/

}

解析:本题考查:删除字符串中所有*号,需用循环语句遍历字符串,用判断语句判断字符是否为*号,由此可以决定该程序应使用循环判断结构。

用循环操作从字符串开始往后逐个进行比较,若不是要删除的字符(用if(a[i]!=’*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。注意,下标变量j要从0开始,最后还要加上字符串结束标识‘\0’。

本文档预览:3600字符,共2781字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(操作题)模拟试卷312

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号