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

2019-08-30 23:42

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


C语言期末考试练习题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:非康说明书 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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