首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷299

国家二级C语言机试(操作题)模拟试卷299

本单篇文档共3053字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 6710人下载
价格: 0.60 原价:¥7.00
收藏

国家二级C语言机试(操作题)模拟试卷299

程序填空题

1.给定程序中,函数fun的功能是:根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

double f1(double x)

{return x*x;)

double f2(double x,double y)

{return x*y;)

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

【1】 fun(int i,double x,double y)

{if(i==1)

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

return 【2】(x);

else

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

return 【3】(x,y);

}

main()

{ double x1=5,x2=3,r;

r=fun(1,x1,x2);

r+=fun(2,x1,x2);

printf(\\

(1)double

(2)f1

(3)f2

解析:填空1:本空函数fun的返回值,根据return可知,不论返回的是f1还是12,它们的返回值均为double型的,故此空应该填写double。

填空2:因为函数fun的功能是根据形参i的值返回某个函数的值,当i等于1时,应该返回的是f1。

填空3:如果不满足if的话,应该返回的是f2。

程序修改题

2.下列给定程序中函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m—1的值。

请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。

注意:部分源程序在文件NODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

1 #include<stdio.h>

2 #include<stdlib.h>

3 typedef strucL aa

4 {int data;

5 struct aa * next;

6 }NODE;

7 NODE*Creatlink(int n,int m)

8 {NODE*h=NULL,*p,*s;

9 int i;

10 /*********found*********/

11 P=(NODE)malloc(sizeof(NODE));

12 h=P;

13 p->next=NULL;

14 for(i=1;i<=n;i++)

15 {s=(NODE*)malloc(sizeof (NODE)),

16 s->data=rand()%m;

17 s->next=p->nexL,

18 p->next=s;p=p->next;

19 }

20 /*********found*********/

21 return p;

22 }

23 outlink(NODE*h)

24 {NODE*p;

25 P=h->next;

26 printf(\\

(1)p=(NODE*)malloc(sizeof(NODE));

(2)return h;

解析:(1)由变量定义可知p为指向结点的指针。指向刚分配的结构指针,所以应改为p=(NODE*)malloc(sizeof(NODE))。

(2)在动态分配内存的下一行语句是,使用临时结构指针变量h保存p指针的初始位置,最后返回不能使用p,是因为p的位置已经发生了变化,所以应改为return h。

程序设计题

3.编写函数fun,其功能是:将s所指字符串中除了下标为奇数同时ASCII码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串的内容为“ABCDEFG12345”,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为“135”。

注意:部分源程序给出如下。

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

void fun(char *s,char t[])

{

}

main()

{

char s[100],t[100];

printf(\\

void fun(char*s,char t[])

{

int i,j=0,n;

n=strlen(s);

for(i=0;i<n;i++)

if((i%2)&&(s[i]%2))

{

t[j++]=s[i]; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/

}

t[j]=’\0’; /*最后加上结束标识符*/

}

解析:本题要求除了下标为奇数同时ASCII码值也为奇数的字符,其余的所有字符都删除,即要留下下标为奇数同时ASCII码值也为奇数的字符。所以if的条件语句应为:if(i%2!=0&&s[i]%2!=0)。

本文档预览:3600字符,共3053字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(操作题)模拟试卷299

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号