100题库答案集合C语言上机.docx
- 文档编号:3025163
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:95
- 大小:66.39KB
100题库答案集合C语言上机.docx
《100题库答案集合C语言上机.docx》由会员分享,可在线阅读,更多相关《100题库答案集合C语言上机.docx(95页珍藏版)》请在冰豆网上搜索。
100题库答案集合C语言上机
1.给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号、姓名和电话号码。
……
第一处:
结构定义自变量,STYPE。
第二处:
在所填行的下面一行,使用fopen来创建一个二进制文件,但文件流的变量名fp已经给出,这样,此处只能填写FILE。
每三处:
fwrite是把变量中的内容写入指定文件中,再根据fwrite参数的使用要求,所以只能填写文件流变量fp。
2.给定程序MODII1.C中函数fun的功能是:
现将在字符串s中的字符按正序存放到t串中,然后把……解题思路:
第一处:
变量sl错写成了s1.
第二处:
新串t的字符串结束位置不正确,应该是两倍的sl距离。
3.a,b合并放到c,a=45,b=12,c=4152解题思路:
本题是给出两个两位数的正整数分别取出各位上的数字,再按条件组成一个新数。
取a十位数字的方法:
a/10
取a个位数字的方法:
a%10
参考答案:
#include
voidfun(inta,intb,long*c)
{*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);}
第二套
1.给定程序的功能是:
从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中……解题思路:
本题要求是把键盘上输入的内容写到指定的文件中。
第一处:
要求填写文件流的自变量名,在这个函数中,已有的语句fputs("\n",fw);分析可知:
由于文件流变量fw在函数体没有定义过,所以本处应填*fw或fw[]。
第二处:
通过while循环语句,把键盘上输入的内容,要写入到指定的文件中,键盘上输入的内容已存入字符串str变量中,因此,本处应填写str。
第三处:
要把已存入文件中的内容,再从文件中读出且已存入字符串变量str中,最后在屏幕显示出来,因此,此处应填写str。
2..给定程序MODII1.C中函数fun的功能是:
从低位开始取出长整形变量s中奇数位上的数,依次构成一个新数放在t中。
……解题思路:
第一处:
在函数fun中使用了*t,但在函数定义时没有使用*t,所以应改为:
voidfun(longs,long*t)。
第二处:
每循环一次,sl的值就乘以10,所以应改为:
sl=sl*10;。
3.a,b合并放到c,a=45,b=12,c=1524解题思路:
本题是给出两个两位数的正整数分别取出各位上的数字,再按条件组成一个新数。
取a十位数字的方法:
a/10
取a个位数字的方法:
a%10
参考答案:
#include
voidfun(inta,intb,long*c)
{*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);}
第三套
1.给定程序中函数fun的功能是:
将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,:
本题要求所求出的数写入到指定的文件中保存。
程序中共有三处要填上适当的内容,使程序能运行出正确的结果。
第一处:
intfprintf(FILE*stream,constchar*format[,argument,…]);因此本处只能填写文件流的变量fp。
第二处:
由于文件打开写操作,所以必须要关闭,因此,只能填写关闭文件的函数fclose(fp)。
第三处:
由于本题要把刚写入文件中的数据重新显示出来,读方式已经给出,但没有给出文件名,所以本处只能写文件名变量fname或者直接给出文件名"myfile3.dat"。
2..给定程序MODII1.C中fun函数的功能是:
将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
解题思路:
第一处:
for循环的终止值应该 第二处: 使用临时变量p来保存最小值位置i,所以应改为: p=i;。 3.a,b合并放到c,a=45,b=12,c=2514解题思路: 本题是给出两个两位数的正整数分别取出各位上的数字,再按条件组成一个新数。 取a十位数字的方法: a/10 取a个位数字的方法: a%10 参考答案: #include voidfun(inta,intb,long*c) {*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);} 第四套 1.给定程序中函数的功能是: 调用函数fun将指定源文件中的内容复制到指定的目标文件中……复制成功时函数返回值为1,失败时返回值为0。 在复制过程中……解题思路: 本题要求是把一个文件中的内容复制到另一个文件中。 程序中共有三处要填上适当的内容,使程序能运行出正确的结果。 第一处: 要求打开一个读方式的源文件,因此可以填上"r"或"r+"。 打开读文件操作的流是fs。 第二处: 用while循环来判断源文件是否已读到文件结束符,intfeof(FILE*stream),因此,此处只能填写fs。 第三处: 把已经读取的字符写入目标文件中,打开写文件操作的流是ft,因此,此处只能填写ft。 2.给定程序MODII1.C中函数fun的功能是: 将长整形数中每一位上为偶数的数依次取出,构成一个新数放在t中。 高位仍为高位,…… 解题思路: 解题思路: 第一处: 判断相等的条件是==。 第二处: 整除的符号是/。 3.a,b合并放到c,a=45,b=12,c=2514解题思路: 本题是给出两个两位数的正整数分别取出各位上的数字,再按条件组成一个新数。 取a十位数字的方法: a/10 取a个位数字的方法: a%10 参考答案: #include voidfun(inta,intb,long*c) {*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);} 第五套 1.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。 函数fun的功能是: 把形参x的值放入一个……解题思路: 本题是要求在一个有序的链表中插入一个数,插入后各结点仍然是有序的。 第一处: 在函数fun的开始处,已经对结构指针s分配了内存,其中data是一个整型变量,实际要求填入一个整型数据。 根据本题要求在一个链表插入一个整型数,该数已通过函数的形参x传入,因此应填x。 第二处: 使用一个while循环找出要插入一个数的位置,在循环体中q实际上保留当前链表p位置的临时变量,如果x>p->data时,那么再移动链表指针到下一个结果,再进行判断是否符合条件,如果仍大于,则仍q保留链表p的位置。 因此,此处应填p。 第三处: 当找到结点位置后,就要插入这个数,完成插入过程。 由于函数体中分配了结构指针s,s的next指针已经指向了p,所以,当前位置q的next指针就应该指向指针s完成链表的链接。 因此,此处应填s。 2.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。 函数fun的功能是: 把形参x的值放入一个……解题思路: 第一处: 由于在k定义时没有赋初值,所以k是一个随机数,根据试题要求,k应赋值为1。 第二处: 整除的符号是/。 3.求平均分,5门,函数的值为71.80解题思路: 本题是使用循环来计算平均值且结果由函数值返回。 参考答案: #include floatfun(float*a,intn) {inti; floatave=0.0; for(i=0;i ave=ave/n; returnave; } 第六套 1.给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据解题思路: 本题是对已经建立的链表,通过调用一次函数就输出链表尾部的数据。 程序中共有三处要填上适当的内容,使程序能运行出正确的结果。 第一处: 由于本题要求输出链表尾部的数据,函数是利用while循环语句找出链表尾部的指针并存入临时变量s中,那么每循环一次就要判断链表是否已结束位置,如果是,则退出循环,进行输出,由于是通过t指针变量进行操作的,因此,都要取t的next指针重新赋给t来实现,所以本处应填next。 第二处: 输出最后一个结点的数据,所以应填t->data或(*t).data。 第三处: 输出出最后一个结点数据后,并把此结点删除了,程序要求释放内存,所以应填t。 2.给定程序MODII1.C中函数fun的功能是: 将数据串中的字符按逆序输出,但不改变字符串中的内容。 解题思路: 第一处: 形参a应定义为字符串指针。 第二处: 语句中缺少逗号。 3.比较两个字符串的长度,返回较长的字符串,若长度相同返回第一个,beijingshanghai解题思路: 我们给出的程序是使用for循环来判断两个字符串中哪一个比较长或相等,循环的终止值为两个字符串中是否字符串结束符,如果有,则退出循环体。 接下来再判断两个字符串是否同时出现结束符,则返回第一个字符串s,如果不没有同时出现,则判断哪一个字符串先有结束符,则按要求返回指定的字符串。 参考答案: #include char*fun(char*s,char*t) {inti; char*p=s,*q=t; for(i=0;*p&&*q;i++){ p++;q++; } if(*p==0&&*q==0)returns; if(*p)returns; elsereturnt; } 第七套 1.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。 函数fun的功能是: 删除链表中数据域值相同的结点,使之只保留一个。 函数fun中使用两个临时结构指针变量p和q对链表进行操作。 首先p指向链表开始的next指针,q指向p的next指针,再利用while循环语句来判断指针q是否NULL,如果q指针是指向NULL,那么函数结束返回。 如果不是NULL,那么就要判断p和q中data值是否相同,如果值相同,则要删除该结点,然后继续判断下一结点值是相同,如果还相同,那么继续删除结点,直至不相同为止。 如果两个结点的值不相同,那么p就指向q,q指向q的next指针再继续操作上述过程。 删除结点的方法是: 先将p的next指针指向q的next指针,再释放q指针指向的内存,最后把q指针再指向p的next指针就可以删除一个链表中的结点了。 第一处: 释放q指针所指的内存空间,应填q。 第二处: q指针指向p的next指针,重新完成链接,应填next。 第三处: 两个结点的值不相同,那么q就指向q的next指针,应填next。 2.给定程序MODII1.C中函数fun的功能是: 用选择法对数组中的n个元素按从小到大的顺序进行排序。 解题思路: 第一处: 语句后缺少分号。 第二处: 保存最小值的位置,所以应改为: p=i;。 3.比较两个字符串的长度,返回较长的字符串,若长度相同返回第一个,beijingshanghai解题思路: 参考答案: #include #defineM100 voidfun(intm,int*a,int*n) {inti; *n=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 100 题库 答案 集合 语言 上机