[计算机类试卷]国家二级C语言机试(操作题)模拟试卷678及答案与解析.doc

上传人:towelfact221 文档编号:498654 上传时间:2018-11-29 格式:DOC 页数:6 大小:29.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷678及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷678及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷678及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷678及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷678及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 678及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:将形参指针所指结构体数组中的三个元素按hum成员进行升序排列。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h typedef struet int num; char name10; PERSON; *found* void fun(PERSON_1_) *found* _2_temp: if(std0 num std1 num) temp=std0; std0=

2、std1; std1=temp; if(std0 num std2 num) temp=std0; std0=std2; std2=temp; if(std1 num sta2 num) temp=std1; std1=std2; std2=temp; main() PERSON std=5, “Zhanghu“, 2, “WangLi“, 6, “LinlMin“; int i; *found* fun(_3_); printf(“ nThe result is: n“); for(i=0; i 3; i+) printf(“ d, s n“, stdi num, stdi name); 二

3、、程序修改题 2 下列给定程序中,函数 fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字 符串。 请改正函数 fun中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdlib h #include stdio h #include eonio h void fun(char*s) int i, j; for(i=0, j=0; si!= 0; i+) if(si =0&8i =9) *found* sj=si; *found* sj=“ 0“; void main() char item80; syst

4、em(“CLS“); printf(“ nEnter a string: “); gets(item); printf(“ nThe string is: s n“, item); fun(item); printf(“ nThe string of changing is: s n“, item); 三、程序设计题 3 请编写一个函数 fun,它的功能是:将 ss所指字符串中所有下标为奇数位置的字母转换为大写 (若该位置上不是字母,则不转 换 )。 例如,若输入 “abc4Efg“,则应输出 “aBc4EFg“。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号

5、中填入你编写的若干语句。 试题程序: #include conio h #include stdio h #include string h #include stdlib h void fun(char*ss) void main() FILE*wf; char tt81, s81=“abc4Efg“; system(“CLS“); printf(“ nPlease enter an string within80characters: n“); gets(tt); printf(“ nAfter changing, the string n s“, tt); fun(tt); printf

6、(“ nbecomes n s n“, tt); * wf=fopen(“out dat“, “w“); fun(s); fprintf(wf, “ s“, s); fclose(wf); * 国家二级 C语言机试(操作题)模拟试卷 678答案与解析 一、程序填空题 1 【正确答案】 (1)std (2)PERSON (3)std 【试题解析】 本题考查:数据类型的定义;数组元素的操作;函数参数的传递。 要使用函数对整个数组进行操作时,应使用数组名作为函数的实参。当使用数组名作实参时,函数传递的实际上是数组的首地址,而并非数组本身,此时形参除了可以定义为指针变量外,还可以定义为数组,并且数组可

7、以不指定大小。但无论用哪种形式,程序在编译时都将其作为一个指针变量处理。 填空 1:定义 形参变量引用数组 std,此时形参可以定义为指针变量,也可以定义为数组。由下文可知,程序是通过数组下标对数组元素进行操作的,因此形参应使用数组形式,而非指针形式。 填空 2:程序使用变量 temp交换结构体数组元素的值,因而 temp应定义为PERsON型。 二、程序修改题 2 【正确答案】 (1)sj+=si; (2)sj= 0; 【试题解析】 题目要求依次取出字符串中所有的数字字符,因此将元素 si存入sj后要使 j加 1,为下次存储做准备。 sj=“ 0“;是一个语法错误。 三、程序设计题 3 【正确答案】 void fun(char*ss) int i: for(i=0; ssi!= 0; i+) *将 ss所指字符串中所有下标为奇数位置的字母转换为大写 * if(i 2=1&ssi =a&ssi =z) ssi=ssi-32; 【试题解析】 本题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及是否是小写字母,如果是再通过其转换方法进行转换。 从 C语言的学习中知道,只要将小写字母减去 32即转成大写字母,将 大写字母加上 32即转成小写字母。本程序用 if语句实现转换功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1