1、全国计算机二级 C语言上机试题 65+2015年及答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun的功能是:将 a所指 43矩阵中第 k行的元素与第 0行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 若 k为 2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #define N 3 #define M
2、4 /*found*/ void fun(int (*a)N, int _1_) int i,j,temp ; /*found*/ for(i = 0 ; i tj+1)。)解析:3.请编写一个函数 fun, 其功能是: 将 ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母, 则不转换)。 例如, 若输入“abc4EFg“,则应输出“aBc4EFg“。 注意: 部分源程序在文件 PROG1.C文件中。 请勿改动主函数 main和其它函数中的任何内容, 仅在函数 fun的花括号中填入你编写的若干语句。 给定源程序: #include #include void fun(
3、char *ss ) void main( void ) char tt51; printf( “/nPlease enter an character string within 50 characters:/n“ ); gets( tt ); printf( “/n/nAfter changing, the string/n /“%s/“, tt ); fun(tt) ; printf( “/nbecomes/n /“%s/“, tt ); NONO(); (分数:10.00)_正确答案:(void fun( char *ss ) char *p = ss ; int i = 0 ; wh
4、ile(*p) if(i % 2) p+ ; i+ ; return ss ; )解析:解题思路: 本题是考察考生在字符串指定位置上的字母转换为大写。给出的程序是由 i来控制字符串所在的位置,字符串指针 p是指向形参 ss,再使用 while循环语句对 p进行控制来判断字符串是否结束,在循环体中使用 if条件语句来判断位置 i是否为奇数且 p所指的当前字符是否为a至z的字母,如果满足这两个条件,则把该小写字母转换成大写字符,小写字母与大写字母的差是 32,所以只小写字母减去 32,即可得到该字母的大写字母,且转换后的字母仍存放到原字符串的位置上,转换结束后,最后通过形参 ss返回已转换后的字符串。