1、国家三级(网络技术)机试模拟试卷 96及答案与解析 一、程序设计题 1 国家三级(网络技术)机试模拟试卷 96答案与解析 一、程序设计题 1 【正确答案】 【试题解析】 定义循环变量 i、 j、 k和整型变量 len、 p。 第一层 for循环中,循环变量 i从 0开始,依次递增直到其值等于 20,实现对20行数据的逐行处理。在循环体中,对于 i行首先调用函数 strlen(xxi)求得第 i行字符串的长度,并把其值赋给变量 len,再用 len除以 2,得到第 i行字符串长度的一半,赋给变量 p。在第二 层 for循环中,循环变量 j从 0开始,依次递过来增直到其值等于 (p-1),在第三层
2、 for循环中,循环变量 k从 j+1开始,依次递过来增直到其值等于 p,比较字符 xxijASCII码值与 xxikASCII码值的大小,如果字符 xxij的 ASCII码值小于 xxik的 ASCII码值,则两者进行互换实现对第 i行字符串左半部分的字符串按降序排列。 用变量 len的值对 2求余数,如果余数为 1,则调用函数字符串拷贝函数strcpy(),把从字符串 xxi+p+1开始直到字符串 xxi的结尾的子字符拷贝到字符串变量 str中,再调用字符串连接函数 stmcat()把字符串 xxi的中间字符连接到字符串变量 str的后面,再调用字符串连接函数 stmcat()把字符串 xxi的左半部分的子字符串连接到变量 str的后面;如果余数不等于 1,则调用字符串拷贝函数strcpyl(),把从字符串 xxi+p开始直到字符串 xxi的结尾的子字符拷贝到字符串变量 str中,再调用字符串连接函数 stmcat()把字符串 xxi的左半部分的子字符串连接到变量 str的后面,实现字符串 xxi左右部分子字符串的交换。 调用字符串拷贝函数 strcpy(),把字符串变量 str的值拷贝到字符串 xxi,实现把排序后的结果仍按行重新存入字符串数组 xx中。