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

上传人:figureissue185 文档编号:498396 上传时间:2018-11-29 格式:DOC 页数:5 大小:32.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷445及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷445及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷445及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷445及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷445及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 445及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是: 在形参 S所指字符串中的每个数字字符之后插入一个 *号。例如,形参 S所指的字符串为 “def35adh3kjsdf7”,执行后结果为 “def3*5*adh3*kjsdf7*”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h void fun(char*s) int i f J r n; for(i=0; si!=0; i+) /*f

2、ound*/ if(si =0【 1】 si =9) n=0; /*found*/ while(si+1+n!=【 2】 ) n+; for(j=i+n+1; j i; j一一 ) /*found*/ sj+1=【 3】 ; sj+1=*; i=i+1; msin() char s60=“def35adh3kjsdf7“; printf(“nThe original string is: sn“, s); fun(s); printf(“nThe result is: sn“, s); 二、程序修改题 2 下列给定程序中函数 fun的功能是:根据整型形参 m,计算如下公式的值:例如,若 m的值

3、为 5,则应输出 1 463611。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include conio h #include stdio h double fun(int m) double y=1 0; int i; /*found*/ for(i=2; i m; i+)/*found*/ y+=1/(i * i); return(y); main() int n=5; printf (“nThe result is 1 fn“, fun(n); 三、程序设计题 3 编写函数 fun,其功能是:实现

4、B=A+A,即将矩阵 A加上 A的转置,存放在矩阵 B中。计算结果在 main函数中输出。 例如, 输入下面的矩阵: 其转置矩阵为: 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 程序输出: 2 6 10 6 10 14 10 14 18 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #include conio h #include stdlib h void fun(int a33, int b33) void main() int e13

5、3=f1, 2, 3, 4, 5, 6, 7, 8, 9), t33; int i, j; system(“CLS“); fun(a, t), for(i=0; i 3; i+) for(j=0; j 3; j+) printf(“ 7 d“, tij); printf(“n“); 国家二级 C语言机试(操作题)模拟试卷 445答案与解析 一、程序填空题 1 【正确答案】 (1)& (2)0或 0 (3)sj或 *(s+j) 【试题解析】 填空 1: if语句中的条件是判断是否为数字字符,数字字符的条件是大于等于 “0”,同时小于等于 “9”,因此需要使用逻辑与 “&”来连接。 填空 2: w

6、hile语句判断是否到达字符串的结尾,因此填入 0(字符串结束标识0)。 填空 3: for语句使数字后的字符全都向后移一个单位,因此要使 sj+1=sj;。 二、程序修改题 2 【正确答案】 (1)for(i =2; i =m; i+) (2)y+=1 0/( i*i);或 y+=(double)1/( i*i); 【试题解析】 (1)根据公式可以知道 for循环语句中变量 i的取值范围应该包括m。 (2)变量 y是一个 double型变量,而 i是整型变量,所以要进行类型转换,改为y+=1 0/( i*i);或 y+=(double)1/( i*i);。 三、程序设计题 3 【正确答案】 void fun (int a33,int b33) int i,j; for( i=0, i 3; i+) for(j=0; j 3; j+) bij=aij+aji; /*把矩阵 a加上 a的转置,存放在矩阵 b中 */ 【试题解 析】 行列数相等的二维数组的转置就是行列互换,即转置后的第 i行第j列正好对应原矩阵的第 j行第 i列。本题使用双层循环实现矩阵的转置,并将计算结果存入矩阵 b中,外层循环控制矩阵的行下标,内层循环控制矩阵的列下标。

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

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

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