教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

C语言期末考试练习题(6)

来源:网络收集 时间:2026-08-20
导读: for(i=0;i printf(“%d,”,a[i]); printf(“\\n”); } void invert(int *s,int i,int j) { int t; if(i { invert( s, i+1, j-1); t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; } } 3.下面程序的运行结果是____Coble dBase C l

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

printf(“%d,”,a[i]);

printf(“\\n”); }

void invert(int *s,int i,int j) { int t; if(i

{ invert( s, i+1, j-1);

t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; } }

3.下面程序的运行结果是____Coble dBase

C language Pascal_____。 #include void main() {

char *a[]={\ char **p; int j; p=a+3;

for(j=3;j>=0;j--)printf(\ }

4. void main() { int a[2][3]={1,2,3,4,5,6}; int m,*ptr; ptr=&a[0][0]; m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf(\ } 15

六、结构体

1、下面程序的输出结果为()

#include struct student { int num;

char name[10]; int age; };

16

void display(struct student *p) { printf(\\\n\, (*p).name); }

int main() {

struct student students[3] = {{9801, \, 20}, {9802, \, 21}, {9803, \, 19}}; display(students + 1); return 0; }

2. 以下程序的输出结果为(7120)

#include

struct sp { int a; int *b; } *p;

int d[3] = {10, 20, 30};

struct sp t[3] = {70, &d[0], 80, &d[1], 90, &d[2]};

int main() { p = t;

printf(\%d%d\\n\, ++(p->a), *++p->b); return 0; }

3. 如果有如下定义:

struct student { int num; float score;

struct student *next; };

并且在主函数中已经建立了如下图所示的链表,并由head指针指向表头结点:

105 107 101 103 head 78.5 85 89.5 90 Null

如果主函数中的调用语句为:ff(head,105);请写出执行下列函数后的输出结果。 void ff(struct student *head,int sn) { struct student *p1,*p2,*p; p1=head;

while(p1->num!=sn && p1!=Null)

{ p2=p1;p1=p1->next;

17

}

if (p1->num==sn) p2->next=p1->next;

else printf (“%ld is not found.\\n”, sn);

p=head;

while ( p!=Null )

{ printf(“%ld:%5.1f\\n”,p->num, p->score); p=p->next ;

} }

运行结果:101: 89.5 103: 90.0 107: 85.0

********************************************************* 4、若有定义: struct num {int a; int b; float f; }n={1,3,5.0};

struct num *pn=&n;

则表达式pn->b/n.a*++pn->b的值是___12_____,表达式(*pn).a+pn->f的值是____6.0____。

Ⅳ 程序填空题

1.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名 和年龄。请在_______内填入正确内容。 #include struct man{

char name[20]; int age;

}person[]={\ \ \ };

void main() {

struct man *p,*q; int old=0 p=person;

for( ;p_< person + 3____;p++) if(oldage)

{q=p;__old = p->age____;}

printf(\ q->age____); }

18

2、以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表不带头结点)。请在______内填入正确内容。 struct link {char data ; struct link *next; }; ....

struct link *p,*first; int c=0; p=first;

while(__p!=NULL___) {_c++______; p=__p->next_____; }

3、有四名学生,每个学生包括学号、姓名、成绩, 要求找出成绩最高者的学号、姓名和成绩(用指针方法)。 main() {

struct student { int num;

char name[20]; float score;

};

struct student stu[4]; struct student *p; int i,temp=0; float max;

for( p=stu;p

scanf(\ p->name ,& p->score); }

for(max=stu[0]. score,i=1; i<4;i++)

19

{

if(stu[i].score>max)

{

max=stu[i].score; temp=i; } }

p=stu+temp ; printf(\

}

Ⅴ 编程题:

1、输入一行字符,统计并输出其中单词的个数。

2、写一函数,判断一字符串是否回文(回文是指正反序相同,如LeveL),在主函数中输入字符串,并输出是否回文的信息,若是,输出“Yes”,否则,输出“No”。

3、编写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 4、定义一结构体数组表示分数(比如1/3),并求两个分数相加之和(以最简分数形式表示)。 5、设某大学有下列登记表,采用最佳方式对它进行类型定义,并用该类型保存一个班30个学生的成绩,然后统计计算每个学生的平均分。

出生日期 年 月 日 姓名

struct date {

int year; int month; int day; };

struct person {

char name[20]; char sex;

struct date birthday; float score[4]; };

性别 20

…… 此处隐藏:908字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言期末考试练习题(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/519594.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)