文档库 最新最全的文档下载
当前位置:文档库 › c语言第七次作业解析

c语言第七次作业解析

c语言第七次作业解析
c语言第七次作业解析

第七次作业:结构体

1.计算日期的差值

(1)编写一函数,计算两个日期之间的时间差,并将其值返回。

日期以年、月、日表示。

“时间差”以天数表示。

注意考虑日期之间的闰年。

函数的输入参数为日期1和日期2,

函数的返回值为时间差,单位为天数。

(2)编写一程序,在主函数中输入两个日期,调用上述函数计算两个日期之间的时间差,并将结果输出。

为了计算简便,假设用户输入的日期1总是早于日期2。

#include

#include

struct date

{int day;int month;int year;}date1,date2;

int totaldays(struct date *p,struct date *q)

{

int years,total=0,i;

int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};

years=q->year-p->year;

if(years==0)

{

if(p->month==q->month)

total=q->day-p->day;

else

{for(i=p->month;imonth-1;i++)

total+=monthday[i];

total+=monthday[p->month-1]-p->day+q->day;}

if(((q->year)%4==0&&(q->year)%100!=0)||(q->year)%400==0)

if(p->month<=2||q->month>2)

total++;

}

else if(years!=0)

{

for(i=p->month;i<12;i++)total+=monthday[i];

total+=monthday[p->month-1]-p->day;

for(i=0;imonth-1;i++)total+=monthday[i];

total+=q->day;

for(i=p->year+1;i<(q->year);i++)

{

total+=365;

if((i%4==0&&i%100!=0)||i%400==0)

total++;

}

if(((p->year%4==0&&p->year%100!=0)||p->year%400==0)&&p->month<=

2)total++;

if(((q->year%4==0&&q->year%100!=0)||q->year%400==0)&&q->month>2 )total++;

}

return total;

}

void main()

{

int days;

printf("please input date1(year,month,day):");

scanf("%d,%d,%d",&date1.year,&date1.month,&date1.day);

printf("please input date2(year,month,day):");

scanf("%d,%d,%d",&date2.year,&date2.month,&date2.day);

days=totaldays(&date1,&date2);

printf("days=%d\n",days);

}

2.结构体数组应用

请定义一个描述学生基本信息的结构,包括姓名,学号,籍贯,身份证号,年龄,家庭住址,性别,联系方式等。并定义一个结构体数组。编程:

a)编写函数input() , 输入基本信息(3~5条记录);

b)编写函数print(),输出全体记录信息;

c)编写函数search(), 检索一个指定的学生信息并返回, 由主函数打印到屏幕上;

d)说明,访问结构的时候,什么时候应该用运算符“.”,什么时候应该用运算符“->”。#include

#include

struct student

{char name[20];int num;char home[20];char IDnum[20];int age;char addr[50];char sex;char phone[20];}stu[10];

void input(struct student *p)

{

scanf("%s %d %s %s %d %s %c %s",&p->name,&p->num,&p->home,&p->IDn um,&p->age,&p->addr,&p->sex,&p->phone);

}

void print(struct student *p)

{

printf("%s,%d,%s,%s,%d,%s,%c,%s\n",p->name,p->num,p->home,p->IDnum ,p->age,p->addr,p->sex,p->phone);

}

int search(struct student stu[],int n,char stu_name[20])

{

int i;

for(i=0;i

{

if(strcmp(stu_name,stu[i].name)==0){return i;break;}

else continue;

}

return n+1;

}

void main()

{

int n,i;

char a[20];

printf("please input the number of the students:");

scanf("%d",&n);

for(i=0;i

for(i=0;i

printf("please input the name of the student you want to search:\n");

scanf("%s",&a);

i=search(stu,n,a);

if(i

else if(i==n+1)printf("No this student!\n");

}

3.一元多项式加法

编写一元多项式加法器,输入两个一元稀疏多项式,然后对它们进行加法操作。

在具体实现上,要求用线性链表形式来存储一个多项式,每个链表的节点包括两个成员

变量,系数和指数(均为整数)。例如

9

890

8

7

x

x

x

A-

x

+

+

=,

+

B

=

+

(x

(

50

)

80

25

95

30

x

x

)

75

x

可以用下面的链表表示:

说明:

(1)每个链表节点都是根据需要动态创建的;

(2)程序采用多函数形式来实现,至少包括创建链表、打印链表、加法函数等。

(3)多项式系数可正、可负;指数肯定是非负整数,且按照递增顺序排列

输入格式:第一行是一个整数M,表示第一个多项式的项数。

接下来有M行,每行有两个整数ci和ei,分别表示第i项的系数和指数。

再接下来是输入第二个多项式,方法同第一个多项式输入。

输出格式:输出两个多项式相加的结果。第一行是整数K,表示新多项式的项数。

接下来有K行,每一行为两个整数,分别代表系数和指数。

#include

#include

#define LEN sizeof(struct poly)

struct poly

{int c;int e;struct poly *next;}poly1[10],poly2[10];

void input(struct poly a[],int m)

{

for(int i=0;i

scanf("%d,%d",&a[i].c,&a[i].e);

}

struct poly *linkcreate(struct poly a[],int m)

{

struct poly *head;

struct poly *p1,*p2;

p1=p2=(struct poly*)malloc(LEN);

head=p1=&a[0];

for(int i=0;i

{p2=&a[i];p1->next=p2;p1=p2;}

p1->next=NULL;

return(head);

}

void linkprint(struct poly *head)

{

struct poly *p;

printf("the polynomial:\n");

p=head;

if(head!=NULL)

do

{

printf("%dx^%d",p->c,p->e);

p=p->next;

if(p!=NULL)putchar('+');

}while(p!=NULL);

putchar('\n');

}

struct poly* add(struct poly *head1,struct poly *head2) {

struct poly *p1,*p2,*p3,*p4;

p1=p2=p3=p4=(struct poly*)malloc(LEN);

p2=head2;

do

{

p1=head1;

while(p1!=NULL)

{

if(p2->e==p1->e)

{

p1->c=p1->c+p2->c;

p4=p2;

p2=p2->next;

p1=head1;

}

else p3=p1;

p1=p1->next;

}

p1=head1;

while((p2->e>p1->e)&&(p1->next!=NULL))

{p3=p1;p1=p1->next;}

p4=p2;

p2=p2->next;

if(p4->ee)

{

if(head1==p1)head1=p4;

else p3->next=p4;

p4->next=p1;

}

else{p1->next=p4;p4->next=NULL;}

}while(p2!=NULL);

return (head1);

}

void addprint(struct poly *head)

{

struct poly *p1;

printf("the new polynomial:\n");

p1=head;

if(head!=NULL)

do

{

printf("%dx^%d",p1->c,p1->e);

p1=p1->next;

if(p1!=NULL)putchar('+');

}

while(p1!=NULL);

putchar('\n');

}

void main()

{

int m,n;

struct poly *p,*q,*head;

printf("please input the number of first terms:");

scanf("%d",&m);

input(poly1,m);

p=linkcreate(poly1,m);

linkprint(p);

printf("please input the number of second terms:");

scanf("%d",&n);

input(poly2,n);

q=linkcreate(poly2,n);

linkprint(q);

head=add(p,q);

addprint(head);

}

4.循环淘汰

有N个同学,编号分别为1,2,3……,N,围成一圈,随便选定一个整数m,让大家按顺时针依次报数,报到m的同学便会从圈子中退出,从而被淘汰,直到最后剩下一个人。

编写函数实现上述循环淘汰功能。

编写一个程序测试上述函数的功能,要求用户能够任意输入N与m;程序输入最后剩下人的编号。

#include

#include

#define LEN sizeof(struct student)

struct student

{

int num;

struct student *next;

};

int win(int n,int m)

{

struct student *p,*p1,*p2,*head;

int i;

p=(struct student*)malloc(LEN);

head=p;

for(i=0;i

{

p->num=i+1;

p1=p;

p=(struct student*)malloc(LEN);

p1->next=p;

}

p1->next=head;

p=head;p1=head;

while(p1->next!=p1)//开始删除元素

{

i=1;

do

{

p1=p;

p=p->next;

i=i+1;

}

while(i!=m);

p2=p1;

p2->next=p->next;

p=p->next;

}

return(p1->num);

}

void main()

{

int N,m,num;

printf("please input N,m:");

scanf("%d,%d",&N,&m);

num=win(N,m);

printf("the winner is NO.%d.",num);

putchar('\n');

}

5.工资单处理

(1)编写函数:有两个单向链表,头指针分别为list1、list2,链表中每一结点包含员工号(员工号为关键字段,不重复)、姓名、工资基本信息,请编一函数,把两个链表拼组成一个链表,并返回拼组后的新链表,按员工号升序排列。

(2)编写函数:利用指针数组,实现按照工资进行升序排列的功能。返回排序完成的指针数组

(3)编写一程序,分别输出按员工号排序后的新链表,以及按照工资排序的结果。

假设链表list1初始化内容为:

{002, name002,3000}, {005, name005,2500}, {003, name003,3500}

链表list2初始化内容为:

{006, name006,2800}, {004, name004,3700}, {001, name001,3000}, {007, name007, 3600},

#include

#include

#include

struct staff

{

char num[5];

char name[10];

int wages;

struct staff *next;

}a3={"003","name003",3500,NULL},a2={"005","name005",2500,&a3},a1={"0 02","name002",3000,&a2},

b4={"007","name007",3600,NULL},b3={"001","name001",3000,&b4},b2={"00

4","name004",3700,&b3},b1={"006","name006",2800,&b2};

struct staff *rank_num(struct staff *list1,struct staff *list2)

{

struct staff *head,*p1,*p2,*p3,*p4;

head=NULL;p1=list1;

p4=p1;

while(p4!=NULL)

{/*老师,我在这题的想法是把它一个一个卸下来然后按顺序装到另一个头指针后,但是感觉这样拆开很麻烦,尤其是我在插入的时候需要定义四个指针,做着做着就乱了,有什么更好的办法吗?*/

if(head==NULL){head=p1;p2=p1;p1=p1->next;p2->next=NULL;}

else

{

while(strcmp(p1->num,p2->num)>0&&p2->next!=NULL)

{

p3=p2;

p2=p2->next;

p4=p1;

}

if(strcmp(p1->num,p2->num)<0&&p2!=NULL)

{

if(head==p2)head=p1;

else p3->next=p1;

p4=p1->next;

p1->next=p2;

p1=p4;

}

else

{

p2->next=p1;

p4=p1->next;

p1->next=NULL;

p1=p4;

}

}

}

p1=list2;

p4=list2;

while(p4!=NULL)

{

p2=head;

while(strcmp(p1->num,p2->num)>0&&p2->next!=NULL)

{

p3=p2;

p2=p2->next;

p4=p1;

}

if(strcmp(p1->num,p2->num)<0&&p2!=NULL)

{

if(head==p2)head=p1;

else p3->next=p1;

p4=p1->next;

p1->next=p2;

p1=p4;

}

else

{

p2->next=p1;

p4=p1->next;

p1->next=NULL;

p1=p4;

}

}

return(head);

}

struct staff *rank_pay(struct staff *head)

{

struct staff *p1,*p2,*p3,*p4,*head2;

p1=head;

head2=NULL;

while(p1!=NULL)

{

p2=head2;

if(head2==NULL){head2=p1;p2=p1;p1=p1->next;p2->next=NULL;}

else

{

while((p1->wages>p2->wages)&&p2->next!=NULL)

{

p3=p2;

p2=p2->next;

p4=p1;

}

if(p1->wageswages&&p2!=NULL)

{

if(head2==p2)head2=p1;

else p3->next=p1;

p4=p1->next;

p1->next=p2;

p1=p4;

}

else

{

p2->next=p1;

p4=p1->next;

p1->next=NULL;

p1=p4;

}

}

}

return(head2);

}

void print(struct staff *p)

{

printf("the rank:\n");

while(p!=NULL)

{

printf("%s,%s,%d\n",p->num,p->name,p->wages);

p=p->next;

}

putchar('\n');

}

void main()

{

struct staff *list1,*list2,*head,*p;

list1=&a1;

list2=&b1;

head=rank_num(list1,list2);

p=head;

print(p);

p=rank_pay(head);

print(p);

putchar('\n');

}

6.单向链表练习

设节点结构:

链表结构:

head

编程。要求程序实现如下功能:

a)链表生成。键盘输入学生信息,建立一个节点按学号递增有序的单链表

A={a1,a2,..,a n},比如包含5~10条记录;//假设输入的学号依次为2010002,

2010005,2010009,2010007,2010003,2010000,姓名自己随便定义

b)节点计数。对单链表A={a1,a2,..,a n}编写节点计数函数f,求单链表中的节点个数。

主函数调用节点计数函数f,并将其返回值(整数)显示到屏幕;

c)对单链表A={a1,a2,..,a n}编写函数fv,将它倒序为A={a n,a n-1,..,a1};

d)编写输出单链表函数list。每次操作(插入一个新节点或者倒序)之后,调用函数

list,在屏幕上显示链表的全部记录数据。

e)编写一个函数search,输入学号,检索链表A,如果指定学号记录存在则返回指

向该节点的指针,主函数打印纪录信息。若学生纪录不存在,则返回空指针,主函

数给出检索失败的信息。

#include

#include

#define LEN sizeof(struct student)

struct student

{

int num;

char name[20];

struct student *next;

};

struct student *create()

{

struct student *p1,*p2,*p3,*p4,*head;

int n,i;

p1=(struct student *)malloc(LEN);

head=p1;

printf("please input the total number of student:");

scanf("%d",&n);

printf("please input the information of student:\n");

for(i=0;i

{

p2=p1;

scanf("%d,%s",&p1->num,p1->name);

p1->next=NULL;

p3=head;

while(p1->num>p3->num&&p3->next!=NULL)

{p4=p3;p3=p3->next;}

if(p1->numnum)

{

if(head==p3)head=p1;

else p4->next=p1;

p1->next=p3;

}

else {p3->next=p1;p1->next=NULL;}

p1=(struct student *)malloc(LEN);

}

return(head);

}

int f(struct student *head)

{

int n=0;

struct student *p1,*p2;

p1=head;

while(p1->next!=NULL)

{

p2=p1;

p1=p1->next;

n=n+1;

}

return(n);

}

struct student *fv(struct student *head) {

struct student *p1,*p2,*head2;

head2=head;

p1=head;p2=head2;

while(p1!=NULL)

{

if(p2==head2)

{

p1=p1->next;

p2->next=NULL;

head2=p1;

p1=p1->next;

head2->next=p2;

p2=head2;

head2=p1;

}

else{p1=p1->next;head2->next=p2;p2=head2;head2=p1;} }

head2=p2;

return(head2);

}

void list(struct student *head)

{

struct student *p;

p=head;

while(p!=NULL)

{printf("number/name:%d,%s\n",p->num,p->name);p=p->next;} }

struct student *search(int m,struct student *head)

{

struct student *p;

p=head;

while(p!=NULL)

{

if(p->num==m)return(p);

else p=p->next;

}

return(NULL);

}

void main()

{

struct student *head1,*head2,*p;

int n;

head1=create();

list(head1);

printf("total nodeal to the total number is %d\n",n=f(head1));

head2=fv(head1);

list(head2);

printf("input the number of the student you want to search:");

scanf("%d",&n);

p=search(n,head2);

if(p==NULL)printf("no this student!\n");

else printf("%d,%s\n",p->num,p->name);

}

7.循环单链表(选作)。

将上一题链表结构改为下面的形式,并在其上实现功能(a)~(e)。

head

循环链表结构

//话说,老师,这一题我可以建完一个循环链表,后面又把他拆成了单链才做后面几步吗?

#include

#include

#define LEN sizeof(struct student)

struct student

{

int num;

char name[20];

struct student *next;

};

struct student *create()

{

struct student *p1,*p2,*p3,*p4,*p,*head;

int n,i;

p1=(struct student *)malloc(LEN);

head=p1;

printf("please input the total number of student:");

scanf("%d",&n);

printf("please input the information of student:\n");

for(i=0;i

{

p2=p1;

scanf("%d,%s",&p1->num,p1->name);

p1->next=NULL;

p3=head;

while(p1->num>p3->num&&p3->next!=NULL)

{p4=p3;p3=p3->next;}

if(p1->numnum)

{

if(head==p3)head=p1;

else p4->next=p1;

p1->next=p3;

}

else {p3->next=p1;p1->next=NULL;p=p1;}

p1=(struct student *)malloc(LEN);

}

p->next=head;

return(head);

}

int f(struct student *head)

{

int n=0;

struct student *p1,*p2;

p1=head;

do

{

p2=p1;

p1=p1->next;

n=n+1;

}while(p1!=head);

return(n);

}

struct student *fv(struct student *head)

{

struct student *p1,*p2,*p,*head2;

head2=head;

p1=head;p2=head2;

do

{

if(p2==head2)

{//老师,我感觉我这个循环做的特别麻烦,有什么好的方法吗?

p1=p1->next;

p2->next=NULL;

p=p2;

head2=p1;

p1=p1->next;

head2->next=p2;

p2=head2;

head2=p1;

}

else

{

p1=p1->next;

head2->next=p2;

p2=head2;

head2=p1;

}

}while(p1!=head);

head2=p2;

p->next=head2;

return(head2);

}

void list(struct student *head)

带答案C语言2-10章作业

C语言习题集专业班级 学姓号名 C语言习题集 第2章运算符与表达式 一、选择题 1.若有定义:int a=2,b=3 ; float x=3.5,y= 2.5;则下面表达式的值为( C )。 (float)(a+b)/2+(int)x% (int)y A)3.5 B)35 C)3.500000 D)35.00000 2.若有定义:int x=3 ,y=2; float a=2.5 ,b= 3.5;则下面表达式的值 为( B )。(x+y)%2+(int)a/(int)b A)1.0 B)1 C)2.0 D)2 3.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。x%=(n%=2) A)0 B)1 C)2 D)3 4.设有int x=11;则表达式(x++*1/3)的值是( A )。

A)3 B)4 C)11 D)12 5.下列程序的输出结果是( C )。 #include <stdio.h> main( ) { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y);} A)3 B)3.2 C)0 D)3.07 6.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <stdio.h> main( ) { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f\n", i,l,f,d); } A)6 6 6.0 6.0 B)6 6 6.7 6.7 C)6 6 6.0 6.7 D)6 6 6.7 6.0 7.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( C )。 A)1 B)2 C)2.0 D)2.5 8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。

第六次作业

习题九 一、选择题 9-1.C语言程序由函数组成。它的。 A.主函数必须在其它函数之前,函数内可以嵌套定义函数 B.主函数可以在其它函数之后,函数内不可以嵌套定义函数 C.主函数必须在其它函数之前,函数内不可以嵌套定义函数 D.主函数必须在其它函数之后,函数内可以嵌套定义函数 9-2.一个C语言程序的基本组成单位是。 A.主程序B.子程序C.函数D.过程 9-3.以下说法中正确的是。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 9-4.已知函数abc的定义为: void abc ( ) { ....... } ?则函数定义中void的含义是。 A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回??C.执行函数abc后,可以返回任意类型D.以上三个答案全是错误的 9-5.在以下对C语言的描述中,正确的是。 A.在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参B.C语言函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数 D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中 9-6.以下叙述中错误的是。 A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值 B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容 C.在C语言中,外部变量的隐含类别是自动存储类别 D.在C语言中,函数形参的存储类型是自动(auto)类型的变量 9-7.说明语句"static int i=10;"中"i=10"的含义是。 A.只说明了一个静态变量B.与"auto i=10;"在功能上等价 C.将变量i初始化为10 D.将变量i赋值为10 9-8.C语言中的函数。

C语言第七、八章补充作业-答案

第七章数组补充作业 【1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 C 。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【2】以下对一维整型数组a的正确说明是 D 。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【3】若有说明:int a[10];则对a数组元素的正确引用是 D 。 A)a[10] B)a[] C)a(5) D)a[10-10] 【4】以下能对一维数组a进行正确初始化的语句是 C 。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 【5】以下对二维数组a的正确说明是 B 。 A)int a[3][]; B)double a[1][4]; C)float a(3,4); D)float a(3)(4); 【6】若有说明:int a[3][4];则对a数组元素的正确引用是 D 。 A)a[2][4] B)a[1,3] C)a(2)(1) D)a[1+1][0] 【7】以下不能对二维数组a进行正确初始化的语句是 C 。 A) int a[2][3]={0}; B) int a[][3]={{1,2},{0}}; C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[][3]={1,2,3,4,5,6}; 【8】指出下面各说明语句中哪些是合法的:(多选) A. int abcd[0x80]; B. char 9ab[10]; C. char chi[-200]; D. int aaa[5]={3,4,5}; E. float key[]={,,1,0}; F. char disk[]; G. int n,floppy[n]; H. int cash[4]={1,2,3,4,5,6}; 答案: ADE 【9】下面程序中有错误的行是 D (每行程序前面的数字表示行号)。 1 main()

c语言第五次作业

第五次作业:函数 1.自然数的计算 编写自己的两个函数,分别求出两个整数的最大公约数和最小的公倍数。 编写一个程序,功能是能够由键盘输入两个整数,并能调用自己编写的函数,计算并输出这两个整数的最大公约数和最小公倍数。 程序代码: #include void main() { intgreatest_common(intx,int y),lowest_common(intx,int y); inta,b,c,d; printf("please input two integer:"); scanf("%d,%d",&a,&b); c=greatest_common(a,b); d=lowest_common(a,b); printf("最大公约数为%d,最小公倍数为%d\n",c,d); } intgreatest_common(intx,int y) { inti,min; if (x>y)min=y; else min=x; for(i=min;i>=1;i--) if ((x%i==0)&&(y%i==0)) return(i); } intlowest_common(intx,int y) { inti,max; if (x>y) max=x; else max=y; for (i=max;;i++) if((i%x==0)&&(i%y==0)) return (i); }

2.字符串连接 请使用字符数组,编写自己的字符串连接函数。 编写一个程序,功能是能够由键盘输入两个字符串,并能调用自己编写的字符串连接函数,输出新的字符串。 #include #include void main() { char link(char a[40],char b[20]); char str1[40]={"0"},str2[20]; printf("请输入第一个字符串:"); gets(str1); printf("请输入第二个字符串:"); gets(str2); printf("合并后的字符串为:\n"); link(str1,str2); puts(str1); } char link(char a[40],char b[20]) { inti,j; i=strlen(a); for(j=0;b[j]!=0;j++) a[i+j]=b[j];

带答案C语言2-10章作业

C语言习题集 专业班级 学号 姓名

第2章运算符与表达式 一、选择题 1.若有定义:int a=2,b=3 ; float x=,y=; 则下面表达式的值为(C)。 (float)(a+b)/2+(int)x% (int)y A) B)35 C) D) 2.若有定义:int x=3 ,y=2; float a= ,b=; 则下面表达式的值为( B )。 (x+y)%2+(int)a/(int)b A) B)1 C) D)2 3.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。x%=(n%=2) A)0 B)1 C)2 D)3 4.设有 int x=11; 则表达式 (x++*1/3)的值是( A )。 A)3 B)4 C)11 D)12 5.下列程序的输出结果是( C )。 #include <> main( ) { double d=; int x,y; x=; y=(x+/; printf("%d\n", d*y);} A)3 B)3.2 C)0 D) 6.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <> main( ) { double d; float f; long l; int i; i=f=l=d=20/3;

printf("%d %ld %f %f\n", i,l,f,d); } A)6 6 B)6 6 C)6 6 D)6 6 7.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。 A)1 B)2 C) D) 8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。 A)i=int(a) B)++i; C)a=a++=5; D)a=int(i); 9.若执行以下程序段后,c3的值为( A )。 int c1=1,c2=2,c3; c3=c2*c1; A)0 B)0.5 C)1 D)2 10.如下程序的运行结果是( D )。 #include <> main( ) { int y=3,x=3,z=1; printf("%d %d\n",(++x,y++),z+2); } A)3 4 B)4 2 C)4 3 D)3 3 11.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。 A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 && a<=0 D)a>=10||a<=0 12.设x,y,t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )。 A)不定值B)4 C)3 D)1 13.以下程序的输出结果是( D )。 #include <> main( ) { int a=3;

2013c语言第5次作业答案

C语言第5次作业及答案 1:[论述题]8,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,现有100元买鸡100只,问其中公鸡、母鸡、小鸡各多少只?编程求解。参考答案:8,提示:此题与上题类似,实际是求一个不定方程组,令公鸡有x只,母鸡 有y只,小鸡z只,进行C语言求解。 此题还有另外一些限制:只有100元,所以公鸡不超过20只,母鸡不超过33只。考虑这些限制可以提高程序运行效率 #include void main() { int x,y,z,j=0; printf("Folleing are possible plans to buy 100 fowls with 100 Yuan.\n"); for(x=0;x<=20;x++) /*外层循环控制鸡翁数*/ for(y=0;y<=33;y++) /*内层循环控制鸡母数y在0~33变化*/ { z=100-x-y; /*内外层循环控制下,鸡雏数z的值受x,y的值的制约*/ if(z%3==0&&5*x+3*y+z/3==100) /*验证取z值的合理性及得到一组解的合理性*/ printf("%2d:cock=%2d hen=%2d chicken=%2d\n",++j,x,y,z); } } 2:[论述题]7,一个笼子中有鸡兔各若干只,已知共有50只脚,20张嘴,问笼中各有鸡多少只,兔多少只?编程实现求解。 参考答案:7、提示:有嘴20张,有脚50只,考虑鸡有2只脚,兔有4只脚,鸡兔都只有一 张嘴,此题实际是计算一个二元一次方程组(令鸡有x只,兔有y只) main() { int x,y; for(x=1;x<20;x++) {

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

第六次c语言作业

第六次课作业 下次课默写交换排序、选择排序和冒泡排序。 习题6-1 题码:章节:数组考查点:一维数组的定义、引用及格式输出难度:2 编写一程序p717.C实现以下功能 输入10个整型数存入一维数组,输出值和下标都为奇数(数组第1个元素的下标为0)的元素及其个数。编程可用素材:printf("Input 10 integers.\n")...、printf("count=...\n"...、 printf("a[...]=...\n"...。 程序的运行效果应类似地如图1所示,图1中的2 45 34 56 78 12 41 55 86 37是从键盘输入的内容。 图1 程序运行效果示例 习题6-2 题码:章节:数组考查点:一维数组定义、输入和输出的掌握,对递推算法的掌握难度:2 编写一程序p725.C实现以下功能 利用数组,求斐波拉契数列的前n(n的范围为:3~20)项,并输出到屏幕上(数和数之间用字符'\t'隔开),斐波拉契公式:f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2) (n≥3)。编程可用素材:printf("input a data(3--20): ")...。 程序的运行效果应类似地如图1所示,图1中的11是从键盘输入的内容。 图1 程序运行效果示例 习题6-3 题码:章节:数组考查点:一维数组的应用难度:2 编写一程序p718.C实现以下功能 有一递推数列,满足f(0)=0,f(1)=1,f(2)=2, f(n+1)=2f(n)+f(n-1)f(n-2) (n>=2), 编写程序求f(n)的值(n由键盘输入,13>=n>=2)。编程可用素材:printf(“Input n (13>=n>=2): ”)...、printf(“\nf(...)=...\n”...。 程序的运行效果应类似地如图1所示,图1中的10是从键盘输入的内容。 图1 程序运行效果示例 习题6-4 题码:章节:数组考查点:键盘输入技巧的掌握和二维数组的应用,判断条件的设定难度:2 编写一程序p217.C实现以下功能 求任意的一个m×m矩阵的对角线上元素之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型,且不需考虑求和的结果可能超出int型能表示的范围)。编程可用素材:printf("Please input m: ")...、 printf("\nPlease input array:\n")...、printf("\nsum=...\n"...。 程序的运行效果应类似地如图1所示,图1中的5和 1 45 67 235 464 35 6 89 32342 8 347 9346 47 95 746 46 785 436 19434 634 3235 567 24 8465 25 是从键盘输入的内容。

C语言第5次作业 简单程序设计

单选题: 1、以下程序段的输出结果是 int a=1234; printf("%2d\n",a); A.12 B.34 C.1234 D.提示出错、无结果 学生答案: C 参考答案: C 2、若有说明语句:int a,b,c,*d=&c; 则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A.scanf("%d%d%d",&a,&b,*d); B.scanf("%d%d%d",&a,&b,&d); C.scanf("%d%d%d",a,b,d); D.scanf("%d%d%d",a,b,*d); 学生答案: B 参考答案: A 3、以下合法的赋值语句是 A.x=y=100 B.d--; C.x+y; D.c=int(a+b); 学生答案: D 参考答案: B 4、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A.10,3 B.9,3 C.9,2 D.10,2 学生答案: D 参考答案: D 5、以下程序的输出结果是 main()

{ int a=3; printf("%d\n",(a+=a-=a*a));} } A.-6 B.12 C.0 D.-12 学生答案: D 参考答案: D 6、以下程序段的输出结果是 char s[]="\\141\141abc\t"; printf ("%d\n",strlen(s)); A.9 B.12 C.13 D.14 学生答案: A 参考答案: A 7、下列程序执行后的输出结果是 main() { int x='f'; printf("%c \n",'A'+(x-'a'+1)); } A.G B.H C.I D.J 学生答案: A 参考答案: A 8、下列程序执行后的输出结果是 main() { char x=0xFFFF; printf("%d \n",x--); } A.-32767 B.FFFE C.-108 D.-32768

C语言程序设计 第四次作业

实验报告 课程名称C语言程序设计 实验项目顺序结构程序设计 实验仪器___________________________ 系别__________自动化系__________ 专业_____自动化__________ 班级/学号自动化1907/2019010737____学生姓名________钱仪嘉_____________ 实验日期_________2019.11.28________ 成绩_______________________ 指导教师__________尤建清__________

一、实验目的 (1)掌握算术表达式、赋值表达式、关系表达式和逻辑表达式的计算。 (2)掌握常见数学库函数的使用。 (3)掌握C语言中基本输入、输出函数的使用方法。 (4)掌握选择结构程序设计的一般方法 二、实验内容 1.第一题 实验题目:编写自定义函数,函数的功能是:将华氏温度F转化为摄氏温度C。公式为:C=5/9(F-32).编写程序,输出一个华氏温度与摄氏温度对照表,其中华氏温度值为32~100,步长为4。 #include double convent(int f); int main() {int f; float c; printf("华氏温度\t摄氏温度\n"); for(f=32;f<=100;f=f+4) { c=convent(f); printf("\t%d\t%10.2f\n",f,c); } } double convent(int f) { double c; c=5.0/9*(f-32); return c; }

实验题目:编写自定义函数,该函数有一个整型参数,函数的功能是当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时返回值为1。编写程序从键盘输入任意10整数,统计其中奇数和偶数分别多少个。判断奇偶性使用自定义函数实现。 #include int isEven(int n); int main() { int i,n,odd=0,even=0; printf("请输入10个整数:"); for(i=1;i<=10;i++) { scanf("%d",&n); if(isEven(i)==1)odd++; else even++; } printf("其中有%d个偶数\n",even); printf("其中有%d个奇数\n",odd) ; return 0; } int isEven(int n) { if(n%2==0) return 0; else return 1; }

最新C语言程序设计作业答案汇总

C语言程序设计作业 答案

C语言程序设计作业答案 作业一 C语言概述参考答案 一、选择题 1-5 ACDCB 二、编程题 main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法参考答案 一、填空题 1、确定性、有效性、有零个或多个输入、有一个或多个输出 2、顺序结构、选择结构、循环结构 3、函数 作业三数据类型、运算符与表达式参考答案 一、选择题 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构参考答案 一、选择题 1-5 BCDDD 6-10 BDADD 二、填空题

1、【31.415920,3.14159e+01】 2、【c=k】 3、【a=1,b=空格,c=2】 4、 【a=12,b=345】 5、【c=A】 作业五选择结构参考答案 一、选择题 1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题 1.【-1】 2.【3】 3.【4】 4.【11】 5. 【97或'a'】 作业六循环结构参考答案 一、选择题 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB 作业七数组参考答案 一、选择题 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题 1、LBLMNP 2、SW* 3、mo 4、a=2,b=1 作业八函数参考答案 一、选择题 1-5 AAACA 二、填空题 1【编程中的main( )函数】2【函数说明部分】和【函数体】 3【–125= –5*5*5】 4【void add (float a, float b)】【float add (float a, float b)】

C语言作业5

28 组成最大数 成绩: 10 / 折扣: 0.8 任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。 输入: 自然数 n 输出: 各位数字组成的最大数 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 1. 1593? 以文本方式显示 1. 9531? 1秒 64M #include #include int main(){ char a[10000]; int x[10]={0}; scanf("%s",a); int n=strlen(a); for(int i=0;i=0;i--) for(int j=0;j

输入: 第一行龙头数n , 勇士人数m (1<=n, m<=100 )接下来n 行,每行包含一个整数,表示龙头的直径接下来m 行,每行包含一个整数,表示勇士的身高l 输出: 如果勇士们能完成任务,输出校长需要花的最小费用;否则输出“ bit is doomed! ” 测试输入期待的输出 时间限制内存限制额外进程 测试用例 1 以文本方式显示 1. 2 3? 2.5? 3.4? 4.7? 5.8? 6.4? 以文本方式显示 1.11? 1秒64M 0 测试用例 2 以文本方式显示 1. 2 1? 2.5? 3.5? 4.10? 以文本方式显示 1.bit is doomed!? 1秒64M 0 #include int main() { int dragon,hero; scanf("%d%d",&dragon,&hero); int dragonhead[100]={0}; int herohight[100]={0}; //input for(int i=0;i

C语言练习作业及答案

习题一 1、C语言源程序最多可能由____ABCD____________部分组成? A)预处理部分B)变量说明部分 C)函数原型声明部分D)函数定义部分 2、一个完整的C语言源程序最少必须有___C____。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 3、C语言以函数为源程序的基本单位最主要有利于__B_____。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 5、一个C程序的执行是从______A______。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 6、以下叙述正确的是__A______。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 7、以下叙述不正确的是___D_____。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 8、C语言规定:在一个源程序中,main函数的位置是___A_____。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后

c语言第六次作业

第五题 #include int main () { int a[10][10],i,j,n; printf("Input n:"); scanf("%d",&n); printf("* "); for(j=1;j<=n;j++) { a[0][j]=j; printf("%d ",a[0][j]); } printf("\n"); for(i=1;i<=n;i++) { a[i][0]=i; printf("%d ",a[i][0]); for(j=1;j<=i;j++) { a[i][j]=a[i][0]*a[0][j]; printf("%d ",a[i][j]); } printf("\n"); } return 0; } 第二题 #include int main(void) { int a[12]={31,0,31,30,31,30,31,31,30,31,30,31};

int year,month,day,sum=0,i; printf("Input year,month,day:"); scanf("%d%d%d",&year,&month,&day); if(year%4==0&&year%100!=0||year%400==0) a[1]=29; else a[1]=28; for(i=0;i int main () { int n,i,j,a[6][6],index1,index2,index3,max; printf("Input n:"); scanf("%d",&n); printf("Input arry:"); for(i=0;i=max)

C语言作业

实验一 C程序的运行环境及简单程序编写(一) 一、实验目的 1. 了解VC++6.0集成环境的基本操作方法。 2. 了解在该系统上如何编辑、编译、连接和运行一个C程序。 3. 通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1. 打印输出你的姓名,年龄,地址信息。 2. 编写程序,实现输出 ********************************************* C语言程序设计 ********************************************* 3. 编写程序,求2个整数的和、差、积、商。 实验二C程序的运行环境及简单程序编写(二) 一、实验目的 1. 编写运行简单的C程序,了解C源程序的特点。 二、实验内容 1. 编写程序,已知长方形的长为8cm,宽为3cm,求长方形的周长和面积。 2. 在上一题的源代码中,用2种注释方法,添加注释内容: 这是一个简单的C语言程序。 3. 编写程序,实现输出三行文字,第一行 Print: (1)\\\\\\\\\\ (2)&&&&&&&&&& (3)|||||||||| 实验三数据的存储与运算(一) 一、实验目的

1. 掌握变量的定义及使用 2. 掌握整型数据在程序中的表示及使用 二、实验内容 1.教材P19例2.1 2. 编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的面值为20美 元、10美元、5美元和1美元钞票来付款。 运行结果: Ener a dollar amount:93 Result: $20 bills:4 $10 bills:1 $5 bills:0 $1 bills:3 3. 输入2个变量的值,交换这2个变量的值后输出。 Input (x,y):2,3 output(x,y):3,2 实验四数据的存储与运算(二) 一、实验目的 1. 掌握整型数据在程序中的表示及使用 2. 掌握实型数据在程序中的表示及使用。 二、实验内容 1.教材P24例2.2 2.教材P46习题1 3. 编写一个程序,要求用户输入一个两位数,然后逆序打印出这个数。 Enter a two-digit number:28 The reversal is :82 实验五数据的存储与运算(三) 一、实验目的 1. 掌握符号常量、字符型数据、字符串的应用 2. 掌握强制类型的转换 二、实验内容 1.给出园半径,求园的体积v=4/3πr3 2.将小写字母转换为大写字母,并将其按字符和整数两种方式输出。 3.输入从午夜开始的秒数total_sec,请计算出等价的时间,用小时(0 ~23)、分钟(0 ~59) 和秒(0 ~59)表示。(建议使用%运算符) Enter total seconds:2590 Time:0:43:10 4.编程计算1/2+1/3+1/5的结果。 实验六数据的存储与运算(四)

5~6次C语言上机作业

实验5 函数(1) 【实验题5-1】以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上。调试运行程序,观察出现了什么错误,提出两种修改方案。 【实验题5-2】下程序的功能:输出3~1000之的间的素数。请选择合适的内容填入程序的空白处,并调试运行程序。

【实验题5-3】从键盘输入一个整数n,计算n^3,并将结果输出在屏幕上。要求计算n^3用函数实现。 【实验题5-4】从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数

实现。 注意写计算表达式的时候3*n之间的乘号不要丢掉,否则会提示:invalid suffix “n”on integer constant. 调用用户自定义函数是只写ifun=fun(n); 就可以了,不要在括号里加上int。Ifun=fun(int n) × 【实验题5-5】编写程序,计算Cmn=n!/(n-m)!m!。要求如下: 1)编写一个函数计算n!; 2)编写主函数,输入n和m, 调用第1)项中的函数完成计算; 3)输出并计算C58、C712的结果。

【实验题6-1】以下程序功能:用已知三角形三边,求三角形面积。但程序有错,请上机调试并改正错误。

【实验题6-2】以下程序运行的结果应该是a=14, b=15,temp=0。在程序空白处填写适当的编译预处理命令。 【实验题6-3】用for循环输出20个0~99之间的随机数。要求没输出五个随机数换一行。 【实验题6-4】从键盘输入一个字母,如果是大写字母就转换成小写字母输出;如果是小写字母就转换成大写字母输出。要求用库函数实现。

c语言第六次作业解析

第六次作业:指针 (以下题目如无特殊声明,请使用指针技术实现,尽量不要使用数组作为形参,也尽量避免使用数组下标引用数组元素) 1.数组元素循环移位 有n个整数,使前面的各整数顺序向后移动m个位置,后面的m个整数则变成最前面的m个数。写一函数实现以上功能。 在主函数中输入n及n个整数,输入m (m void main() { void inv(int *p,int n,int m); int n,m,a[20],*p; printf("please input n="); scanf("%d",&n); printf("please input %d numbers:",n); p=a; while(p

2. 矩阵元素的排序 将一个5×5的整数型矩阵中各元素重新排序。排序规则为,矩阵元素按照从左到右,从上到下的顺序依次递增,即 4,41,10,14,03,02,01,00,0.......a a a a a a a a ≤≤≤≤≤≤≤。 要求编写一个函数实现上述排序功能。 在主函数中输入该矩阵,调用编写的上述函数,然后输出排序后的矩阵。 #include void main() { void inv(int (*x)[5]); int i,j,a[5][5]; int (*p)[5]; printf("please input an 5*5 array:\n"); p=a; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",*(p+i)+j); inv(p); printf("the new array:\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%4d",*(*(p+i)+j)); putchar('\n'); }

C语言作业答案

第一章:第6题 方法一: #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max int main() {int max(int x,int y); int a,b,c,d; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); d=max(max(a,b),c); printf("The largest number is %d\n",d); return 0; } int max(int x,int y) { return (x>y)?x:y; } 第三章第3题 #include #include int main() {float d=300000,p=6000,r=0.01,m; m=log10(p/(p-d*r))/log10(1+r); printf("m=%6.2f\n",m); return 0;

} 第4题 #include int main() {char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? 解:运行时输出: 第1行是将c1,c2按%c的格式输出,97是字符a的ASCII代码,98是字符b的ASCII代码。第2行是将c1,c2按%d的格式输出,所以输出两个十进制整数。 (2)如果将程序第4,5行改为: C1=197; C2=198; 运行时会输出什么信息?为什么? 解:由于Visual C++6.0字符型数据是作为signed char 类型处理的,它存字符的有效范围为0~127,超过此范围的处理方法,不同的系统得到的结果不同,因而用“%c”格式输出时,结果是不可预料的。 (3)如果将程序第3行改为; int c1,c2; 运行时会输出什么信息?为什么? 解:如果给c1和c2赋的值是97和平利用8,则输出结果与(1)相同。如果给c1和c2赋的值是197和198,则用%c输出时,是不可预料的字符。用%d输出时,输出整数197和198,因为它们在int类型的有效范围内。 第5题 #include int main() {int a,b; float x,y; char c1,c2; scanf("a=%d b=%d",&a,&b); scanf("%f %e",&x,&y);

c语言作业答案

No.: Name: 第1讲C语言概述 注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。 一、选择题 1. 一个C程序的执行是从A 。 A) 本程序main函数开始,到main函数结束 B) 本程序文件第一个函数开始,到最后一个函数结束 C) 本程序文件第一个函数开始,到本main函数结束 D) 本程序main函数开始,到本程序文件最后一个函 数结束 2. 以下叙述不正确的是D 。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3. 以下叙述正确的是C 。 A) 在对一个C程序进行编译的过程中,可发现注释中 的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) 语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4. 一个C语言程序是由B 。 A) 一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5. 以下叙述中正确的是C 。 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为 语言的表达形式 D) C语言出现的最晚,具有其他语言的一切优点 6. 下列叙述中正确的是D 。 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言的函数可以嵌套调用 7. 以下叙述中正确的是A 。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main函数必须放在其他函数之前 D) 所有被调用的函数一定要在调用之前进行定义

相关文档