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

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

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

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

程序填空题

1. 给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf.

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

注意:源程序存放在考生文件夹下的BLANK1.C中。

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

#include

void fun(char *s)

{int i, n, k; char c;

n=0;

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

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

if(n%2==0) k=n-【1】 ;

else k=n-2;

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

c=【2】 ;

for(i=k-2;i>=l;i=i-2)

s[i+2]=s[i];

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

s[l]=【3】 ;

}

main()

{ char s[80]=\\

(1)1 (2)s[k] (3)c

解析:函数fun的功能是移动下标为奇数位置的字符。

第一空:“for(i=0;s[i]!=’\0’;i++) n++;”n记录了数组s的长度,“if(n%2==0)”如果长度n是偶数,那么最右边被移出的字符的下标是在n-1,如果n是奇数,那么最右边被移出的字符的下标是n-2,因此,第一空处应为“1”。

第二空:题目要求最右边被移出字符串的字符绕回放到第一个奇数位置,因此,最右边被移出的字符是s[k],在s[k]被替换之前必须先把s[k]保存在其他变量中,故第二空处应为“s[k]”,将s[k]保存在c中。

第三空:此处是把最右边被移出字符串的字符绕回放到第一个奇数位置,最右边被移出字符保存在c,第一奇数位置是s[l],故第三处应为“c”。

程序修改题

2. 给定程序MODI1.C中fun函数的功能是:求

s=aa…aa-…-aaa-aa-a

(此处aa…aa表示n个a,a和n的值在1至9之间)

例如a=3,n=6,则以上表达式为:

s=333333-33333-3333-333-33-3

其值是:296298

a和n是fun函数的形参,表达式的值作为函数值传回main函数。

请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

long fun (int a, int n)

{ int j ;

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

long s = 0, t= 1 ;

for (j = 0 ; j < n ; j++)

t = t * 10 + a ;

s = t ;

for (j = 1 ; j < n ; j++) {

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

t = t % 10 ;

s = s – t ;

}

return(s);

}

main()

{ int a, n ;

printf(\\

(1)long s=0,t=0;

(2)t=t/10;

解析:函数的功能是求s=aa…aa-…-aaa-aa—a。

(1)当进入第一循环,“t=t*10+a;”语句,如果输入的a是3,并且利用题目中给出的初始化值1,计算得出t的值为13,而实际应该是3,由此可知t的初值设置不正确,不应该是1。所以将“long s=0,t=1;”改为“long s=0,t=0;”。

(2)循环中通过语句“t=t%10;”来获得每一项,每循环一次,t的值应缩小10倍,这里应该用除以10来实现,而不能用“%”求余数。所以将“t=t%10;”改为“t=t/10;”。

程序设计题

3. 请编写一个函数void fun(char*tt,int PP[]),统计在tt所指字符串中“‘at’”到“‘z’”26个小写字母各自出现的次数,并依次放在pp所指数组中。

例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:

3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

注意:部分源程序在文件PROG1.C中。

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

#include

#include

void fun(char *tt, int pp[])

{

}

main ()

{ char aa[1000] ;

int bb[26] , k ;

void NONO () ;

printf (\\

char *p=tt;

int i;

for(i=0;i<26;i++) pp[i]=0;

while(*p){

if(*p>=’a’&&*p<=’z’)

pp[*p一’a’]+=1;

p++;}

解析:该程序功能是统计字符串中26个字母各自出现的次数。解题思路,从已给部分源程序的main主函数开始入手,函数形参指针tt接受主函数中字符数组aa的起始地址,形参pp接受主函数中的bb数组的起始地址,bb数组的每一个元素都是计数器,bb[0]中统计字母“a”的个数,bb[1]中统计字母“b”的个数,依此类推,bb[25]中统计字母“z”的个数。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号