計算机二级考试-c程序设计语言-上机题库
第一套
填空:
给定程序的功能是调用fun函数建立班级通顺录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
1、STYPE 2、FILE 3、fp
改错:
先将在字符串S中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“ABCDEEDCBA”.
1、将s1改为sl
2、将1倍数组长度给位2倍的数组长度
程序设计:
将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的侍卫和各位数一次放在c数的千位和十位上,b数的十位和个位数一次放在c数的百位和个位上。
例如:当a=45,b=12时,调用该函数后,c=4152.
该题有两种方法:1、*c=a/10*1000+a%10*10+b/10*100+b%10; 2、用in、out文件。
第二套
填空:
从键盘输入若干行文本,写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数TeadText和WriteText实现。
1、*fw 2、str 3、str
改错:
从低位开始取出长整型变量s中奇数位上的数,一次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如:当s中的数为:7654321时,t中的数为:7531。
1、将long t改为long *t
2、将sl=sl*100改为sl=sl*10
第三套
填空:
将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
1、fp 2、fclose(fp) 3、fname
改错:
将n个无序整数从小到大排序。
1、将范围改为n 2、将t改为p
程序设计:将a、b数拆开重新组合。
第四套
填空:
将指定的内容复制到指定的目标文件中,复制成功时返回1,失败时返回0。
1、“r” 2、fs 3、ft
改错:
将一个数中的每一位上位偶数的数依次取出放到新数t中。高位和地位不变。
1、‘=’与‘==’的使用
2、‘\’与‘/’的使用
第五套
填空:
把形参x的值放入一个新结点并插入到递增有序链表中,插入后仍保持有序。
1、x 2、p 3、s
改错:
计算一个正整数的各位上的数字之积。
1、使用变量先赋值(k=1)
2、‘\’和‘/’的使用
程序设计:
计算几门课程的平均分。
int i;float aver=0.0;2、用in、out文件
for(i=0;i
aver+=a[i];
return (aver/n);
第六套
填空:
将一个链表从后向前依次输出每个结点的值,并且释放该结点,是该链表缩短。
1、t->next 2、t->data 3、t
改错:
将一个字符串逆序输出。
1、注意形参的定义类型(*a)
2、输出函数的书写格式(添,)
程序设计:
比较两个字符串的长度,返回较长的字符串;若字符串的长度相同,则返回第一个字符串。
用in、out文件
第七套
填空:
删除有序递增链表中内容相同的结点。
1、q 2、p->next 3、p->next
改错:
用选择法对数组中的n个元素按从小到大的顺序进行排序。
1、一条语句后面要有分号(加;)
2、p应该记录最小元素的下标i
程序设计:
求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
1、int i; 2、不能用in、out文件
*n=0;
for(i=7;i<=m;i++)
if(i%7==0||i%11==0)
a[(*n)++]=i;
第八套
填空:
在带有头结点的单向链表中查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在则返回0值。
1、NULL 2、return n; 3、fun(head,ch)
改错:
删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符),输入的字符串用‘#’结束输入。
1、注意关键词的大小写(将For改为for)
2、注意转义字符的使用(用单引号)
程序设计:
将数组中的字符串下标为奇数的字母转换为大写(若该位置上不是字母,则不转换)。
1、用in、out文件 2、int i ;
for(i = 1 ; i < strlen(*ss) ; i+