首页 > 全部 > 二级C语言 > 2018年3月国家二级C语言机试(操作题)真题汇编2

2018年3月国家二级C语言机试(操作题)真题汇编2

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

2018年3月国家二级C语言机试(操作题)真题汇编2

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。该串长度最大不超过15。

例如,若表示二进制数的字符串为:\\

(1)s[]

(2)s[i]!=’\0’&&i<N

(3)48

解析:填空1:该函数所接受的参数为字符数组,所以形参也为字符数组,根据函数内所用的字符数组s[i],所以该空填s[]。答案为s[]。

填空2:访问一个字符数组的所有元素时,当该元素不为字符串结束符’\0’时,继续访问,当访问到字符串结束符’\0’时,表示该字符串结束了,结束循环返回计算结果,因为串的长度最大不超过15,所以定义了一个常量N为16,在for循环的第二个表达式中i<N用来控制其不超过15,当其超过了15位时后面的不做计算,所以该空填s[i]!=’\0’&&i<N。答案为s[i]!=’\0’&&i<N。

填空3:从字符串取出的字符不能直接用于十进制计算,从s[i]中取出的“1,0”为字符,要先将其转化为十进制数字,s[i]﹣48将s[i]中的字符转化为十进制数。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。调用fun函数输出字符串,当奇数次调用时要求把字符串中的小写字母转换成大写字母,偶数次调用时按输入字符串的逆序输出字符串。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

#include<stdio.h>

#include<string.h>

#include<ctype.h>

#pragma warning(disable:4996)

void fun(char*s)

{inti;

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

Statc intn=1;

if(n++%2)

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

for(i=0;i<=strlen(s);i++)

printf(\\

(1)将Static改为static

(2)将for循环中的i<=strlen(s)改为i<strlen(s)

(3)将for循环中的i>0改为i>=0

解析:(1)函数使用static修饰变量n,用来保存调用次数以便判断是奇数次还是偶数次,关键字应为static,第一个字母为小写,所以将Static改为static。

(2)用strlen()计算字符串长度,但因为字符串保存在一个数组中,而数组元素是从0位置开始的,例如一个字符数组s[]有5个字符,利用数组调用它们应为a[0]、a[1]、a[2]、a[3]、a[4],for循环中当i=strlen(s﹣1)时即为最后一个字符,所以将for循环中的i<=strlen(s)改为i<strlen(s)。

(3)利用for循环从该字符数组最后一个字符开始依次向前输出字符,实现该字符串的逆序输出,字符数组的第一个元素应为s[0],因此最后输出的字符为s[0],所以将for循环中的i>0改为i>=0。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此处有一个很奇怪的车牌号,它是一个4位十进制数,是某一个数的平方数,且这4个数字从右至左一个比一个大。程序的功能是把这个车牌号找出来,部分程序已给出。

请编写函数fun,其功能是:将一个4位数的每一位数分离出来,并依次存放在结构体变量成员中,通过函数值返回给主函数。

例如,一个4位数n为2579,则应把2放在res.m3中,把5放在res.m2中,把7放在res.m1中,把9放在res.m0中。

程序正确运行后的输出结果是:No.is1369

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

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

#include<stdio.h>

{}include<stdlib.h>

#praqma warning(disable:4996)

struct BITS{int m3,m2,m1,m0;};

Struct BITS fun(int n)

{

Struct BITS res;

/*在这里将函数代码补充完整*/

}

main()

{struct BITS a;

void NONO();

int i=0,n=0;

for(i=32;i<100;i++)

{n=i*i;

a=fun(n);

if(a.m3<a.m2&&a.m2<a.m1&&a.m1<a.m0)

printf(\\

res.m0=n%10;

res.m1=n/10%10;

res.m2=n/100%10;

res.m3=n/1000;

return res;

解析:根据题目要求将一个四位数的个、十、百、千位数提取出来,分别放入res.m0、res.m1、res.m2、res.m3中,首先提取个位数,将数对10取余,所得的结果即为个位数字,将其赋值给res.m0;然后取十位,将该数除以10,因为是int型,进行强制转换,小数点后的数字舍去,则该数的个位数舍去,变为一个三位数(例如2563除以10为256.3,经类型强制转换后变为256),再进行对10取余,得到十位数字,将其赋值给res.m1;然后取百位,将该数除以100,因为是int型,进行强制转换,小数点后的数字舍去,则该数的个位、十位数舍去,变为一个两位数(例如2563除以100为25.63,经类型强制转换后变为25),再进行对10取余,得到百位数字,将其赋值给res.m2;最后取千位,将该数直接除以1000,再进行强制转换后(例如2563除以1000为2.563,经类型强制转换后变为2),所得到的数即为千位数字,将其赋值给res.m3,最后返回该结构体即可。

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

剩余未完,查看全文
收藏
2018年3月国家二级C语言机试(操作题)真题汇编2

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号