2010年技能高考题
第一套
1.对只包含'-'和字母字符的字符串str进行如下处理:
删除str中前导和尾部连续的'-'字符,保留串中字母字符以及字母间的'-'字符。
例如,str中初始字符串为"----C--Language--Test----"。处理后,str中的字符串为"C--Language--Test"。
程序中isalpha函数功能是判断参数是否是字母,是字母,函数值为真,否则函数值为假。
2.函数unsigned fun(long s, int w)返回长整型变量s中第w位的值,例如调用fun(216783,1) 函数返回3,调用fun(216783,3)函数返回7。main()从键盘接收一个长整数给变量s,通过调用fun()函数求s奇数位之和,例如数216783各奇数位数字为1,7和3,它们的和为11。下面给定的程序存在错误,请改正。
3.出二维整型数组a[4][4]中每行元素的最大值,并将该元素移动至该行首列。编写程序:
(1)编写void findmax(int a[][N], int n[])函数:出二维数组a中每行元素的最大值,并将该元素的列下标存入数组n中,即第0行元素最大值的列下标存入n[0],...,第3行元素最大值的列下标存入n[3]。
(2)编写void move(int a[][N],int n[])函数:根据数组n中保存的数据,将a数组中每行最大值元素移动到该行首列,要求移动后该元素与该行其他元素的相对位置不变。
例如:
a数组的初始数据为:
-2 13    6 9
25    4 0 11
-8    3 10 16
4 7
5 20
经过处理后a数组中数据为:
13    6 9 -2
25    4 0 11
16 -8    3 10
isalpha 函数20    4 7    5
第二套
1.随机产生10个范围在[0,99]之间,互不相同的正整数存入数组t,并求出这10个数据的最小值和次小值。其中最小值存入min1,次小值存入min2。程序中rand()函数功能是产生一个随机正整数。
2.函数main()首先从键盘接收10个整数,依次存放在a数组中;其次,调用fun()函数在这10个整数中出第一个奇数,并返回该数的下标值,如果在这10个数中无奇数,则返回-1;第三,如果fun()函数返回值不等于-1则把到的数与第1个数对换位置。
下面给定的程序存在错误,请改正。
3.程序对一维数组a中数据进行升序排序后,对数组a中重复出现的数据,删除重复数据,保留一个。对只出现一次的数据则全部保留。编写程序:
(1)编写sort(int a[],int n)函数,对数组a中n个元素进行升序排序。
(2)编写int delelem(int a[],int n)函数,对数组a中n个数据删除重复数据,只保留一个。对只出现一次的数据则全部保留。函数返回数组中剩余元素的个数。
例如:
数组a的初始数据为:2,5,2,4,20,0,4,-5,-5,16,2,-4,20。
升序排序后为:-5,-5,-4,0,2,2,2,4,4,5,16,20,20。
删除重复数据后为:-5,-4,0,2,4,5,16,20。
第三套
1.(1)第一个for循环中给a数组10个元素依次赋字符'A'、'B'、'C'、'D'、'E'、'V'、'W'、'X'、'Y'、'Z'。
(2)、第二个for循环中使a数组10个元素的值对称折叠,变成'A'、'B'、'C'、'D'、'E'、'E'、'D'、'C'、'B'、'A'。
(3)第三个for循环输出的字符依次是'A'、'B'、'C'、'D'、'E'、'A'、'B'、'C'、'D'、'E'。
2.函数main()首先产生N个随机数,再调用insertsort()函数对这N个数按升序进行排序,最后将排序的结果输出。下面给定的程序存在错误,请改正。
3.主函数main()中字符串s是由若干个八进制形式的数字字符串与'$'字符组成。程序先将每个八进制形式的数字字符串转换成十进制数值(每个数值都对应一个ASCII码字符),并依次存入数组t中,然后将t中存放的字符串逆序。
例如:
s串为"$162$145$164$165$160$155$157$143$",经转换后,
t中的字符串为"retupmoc",逆序后为"computer"。
编写程序:
(1)编写int abstract(char s[],char t[])函数: 将字符数组s中的所有八进制形式的数字字符串转换成十进制数值并存入字符数组t中。函数返回字符串t的长度。
(2)编写void reverse(char t[],int len)函数:将长度为len的字符串t逆序。
第四套
1.将输入的一个十进制正整数转换为十六进制字符形式并显示。
2.函数main()首先从键盘接收一串字符,以回车符结束串输入,并保存在变量str1中,输入一个字符给变量ch;其次,调用fun()函数将字符串str1中的所有为ch字符去掉;最后输出字符串str1。下面给定的程序存在错误,请改正。
3.若一个数和该数的逆序数相同,就称该数为回文数。对于一个非回文数,加上该数的逆序数后,其和可能是回文数。如和仍然是非回文数,则有限次重复上述步骤总能得到回文数。
例如,87是非回文数,则
87+78=165 165 非回文数
165+561=726 726 非回文数
726+627=1353 1353 非回文数
1353+3531=4884 4884 回文数
主函数main()从文件中读入一个正整数,判断其是否是回文数。如果该数是回文,则输出该数,如果不是回文,则使用上述算法,求出回文数。
编写程序:
(1)编写int reverse(int x)函数:求参数x的逆序数,并将该逆序数返回。
(2)编写int ispalin(int x)函数:判断参数x是否是回文数,是回文数,函数返回真,否则函数返回假。
(3)编写int palin(int x)函数:如果参数x是回文数,函数返回x; 如果x不是回文数,则根据上述算法求出回文数后,返回该回文数。
第五套
1.统计字符串str中单词的数量、最长单词的字母数、最短单词字母数。单词之间至少有一个空格。假设str中最长单词不超过20个字母。程序中isalpha函数功能是判断参数是否是字母字符,如果是字母字符,函数返回真,否则函数返回假。
2.N个有序整数数列已放在一维数组a中,下列给定程序中,函数fun的功能是:利用折半查算法整数m在数组中的位置。若到,则返回其下标值;反之,则返回-1。下面给定的程序存在错误,请改正。
3.主函数main()将字符串a中若干个连续的数字字符串转换成整数(不考虑正负符号),保存在数组n中,并对数组n中元素进行升序排序,最后计算最小值、次小值的最大公约数。
系统函数int isdigit(char c) 的功能是判断参数c是否是数字字符。如果c是数字字符,函数返回真,否则返回假。
编写程序:
(1)编写int abstract(char a[],int n[])函数: 将字符串a中的连续数字字符转换为整数,保存在数组n中,函数返回整数个数。
(2)编写void sort(int n[],int k)函数: 对数组n中的k个元素进行升序排序。
(3)编写int gcd(int a,int b)函数: 求参数a,b的最大公约数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。