计算机二级C语言上机模拟试题10套(含解析)

2026/4/28 21:31:18

/**********************found***********************/

void fun(char p) {

char min, *q; int i=0; min=p[i];

while (p[i]!=0) {

if (min>p[i]) {

/**********************found***********************/

p=q+i; min=p[i]; } i++; } while(q>p)

{*q=*(q-1); q--; } p[0]=min; }

main() {

char str[80];

printf(\ gets(str);

printf(\ puts(str); fun(str);

printf(\ puts(str); printf(\}

答案及评析:

(1)错误:void fun(char p) 正确:void fun(char *p) (2)错误:p=q+i; 正确:q=p+i;

【解析】错误:由于本题中函数的功能是对字符串进行处理,而不是对单个字符进行处理,因此,函数的参数应为字符串指针。 错误2:使指针q指向ASCII码最小的字符 本题解答需要3个步骤:

(1)找到字符串中ASCII码值最小的字符,并保存。 (2)将该字符复制,并将该字符前面的字符串顺次后移。

(3)将ASCII码值最小的字符赋给字符串的第1个字符。找到ASCII码值最小的字符可以通过定义一个字符min,该字符初始时等于字符串的第1个字符,若字符串的下一个字符小于min,则将下一个字符赋给min,如此循环到字符尾,即可得到ASCII码值最小的字符,同时令指针q指向最小字符。之后对最小字符前面的子串顺次后移,可采用while语句实现。

此题需要熟练掌握和灵活应用C语言的字符与整型变量的关系以及字符串操作。

3. 编程题

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最低分,由函数值返回。 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:

#include #include #define N 8

struct slist { double s;

struct slist *next; };

typedef struct slist STREC; double fun(STREC *h) { }

STREC * creat (double *s) {

STREC *h,*p,*q; int i=0;

h=p=(STREC*)malloc(sizeof(STREC)); p->s=0;

while(i

{q=(STREC*) malloc(sizeof(STREC)); p->s=s[i]; i++; p->next=q; p=q; }

p->next=NULL;

return h; /*返回链表的首地址*/ }

outlist(STREC *h) {

STREC *p; p=h;

printf(\ do

{printf(\ /*输出各分数*/ while(p!=NULL); printf(\}

main() {

double s[N]={56,89,76,95,91,68,75,85}, min; STREC *h; h=creat(s); outlist(h); min=fun(h);

printf(\}

答案及评析:

double fun(STREC *h) {

double min=h->s;

while(h!=NULL) /*通过循环找到最低分数*/

{if(min>h->s) min=h->s; h=h->next; }

return min; }

【解析】在本题中,h为一个指向结构体的指针变量,若要引用它所指向的结构体中的某一成员时,要用指向运算符\。由于是链表,所以要使h逐一往后移动,使用的是h=h->next。 模拟试题(八) 1.填空题

请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序:

#include #include char *fun(int n) {

int g,s,b; g=n; s=n/10; b=【1】; if((g+b)==s) return【2】; else

return【3】; }

main() {

int num=0; clrscr();

printf(\ scanf(\ printf(\

printf(\


计算机二级C语言上机模拟试题10套(含解析).doc 将本文的Word文档下载到电脑
搜索更多关于: 计算机二级C语言上机模拟试题10套(含解析) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219