C语言程序设计标准答案.doc
C语言程序设计综合作业布置日期:2012-5-15 截止日期:2012-5-25一、单选题 (每小题5分,共100分)1、有关宏定义的正确说明是。A、可出现在一行中的任何位置B、只能放在程序的开头,且每一个宏定义单独占一行C、可出现在程序的任何位置D、以#开头的行,可出现在程序的任何位置,通常每一个宏定义只能单独占一行,使用字符“”可实现一个宏定义占用若干行参考答案:D2、结构是C语言的构造数据类型。下面定义了一个职工结构employee、结构变量emp1和结构指针变量p:struct employeeint num; /职工编号char name10; /职工姓名emp1,*p;p=&emp1;正确使用结构变量emp1的语句是:A、scanf("%d%s",&p->num,p->name);B、scanf("%d%s",&p->num,&p->name);C、scanf("%d%s",&p.num,p.name);D、scanf("%d%s",&p.num,&p.name);参考答案:A3、程序清单如下:若运行该程序,并输入:2000-12-31,则输出结果是#include <stdio.h>struct int year; /年int month; /月int day; /日date;void main()int i,loop=0,sum=0;scanf("%d-%d-%d",&date.year,&date.month,&date.day);if(date.year%4=0&&date.year%100!=0)|(date.year%400=0)loop=1;for(i=1;i<date.month;i+)if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) sum+=31;else if(i=4|i=6|i=9|i=11) sum+=30;else if(i=2) sum=sum+28+loop;printf("sum=%dn",sum);A、30B、31C、365D、366参考答案:D4、下面定义了一个通信录结构friends_list、结构变量friend1struct friends_listint num; /编号char name10; /姓名char telephone13; /电话int age; /年龄friend1;正确使用结构变量friend1的语句是A、friend1.name="xiaojie"B、friend1->name="xiaojie"C、D、参考答案:5、下面定义了一个通信录结构friends_list、结构变量friend1struct friends_listint num; /编号char name10; /姓名char telephone13; /电话int age; /年龄friend1;正确使用结构变量friend1的语句是A、friend1.name="xiaojie"B、friend1->name="xiaojie"C、strcpy(friend1.name,"xiaojie");D、strcpy(friend1->name,"xiaojie");参考答案:C6、下面定义了一个通信录结构friends_list、结构变量friend1struct friends_listint num; /编号char name10; /姓名char telephone13; /电话int age; /年龄friend1;正确使用结构变量friend1的scanf语句是A、sacnf("%d%s%s%d",&friend1.num,&friend1.name,&friend1.telephone,&friend1.age);B、sacnf("%d%s%s%d",&friend1.num,friend1.name,friend1.telephone,&friend1.age);C、sacnf("%d%s%s%d",friend1.num,&friend1.name,&friend1.telephone,friend1.age);D、sacnf("%d%s%s%d",friend1.num,friend1.name,friend1.telephone,friend1.age);参考答案:B7、5、下面定义了一个日期结构date、结构变量date1和date2struct dateint year;int month;int day;date1=2000,1,1,date2;对结构变量date2正确操作的语句是A、date2=date1;B、strcpy(date2,date1);C、date2=2010,12,1;D、date2=2010-12-1;参考答案:A8、下面定义了一个日期结构struct datestruct dateint year;int month;int day;date1;结构类型占用的内存空间可用sizeof来计算,正确的sizeof格式是A.sizeof(date1)B.sizeof(struct date)C.sizeof(struct date date1)D.sizeof(date)A、A正确B、B正确C、A和B都正确D、C和D都正确参考答案:C9、下面定义了一个日期结构struct datestruct dateint year;int month;int day;date1;该结构类型占用的内存空间是多少字节A、6B、9C、12D、15参考答案:C10、下面定义了一个平面点结构struct point、结构变量point1和结构指针pstruct pointdouble x;double y;point1,*p=&point1;欲将点(100,100)赋值给point1,则不正确的操作语句是A、point1.x=100;point1.y=100;B、*p.x=100;*p.point1.y=100;C、(*p).x=100;(*p).point1.y=100;D、p->x=100;p->y=100;参考答案:B11、下面定义了一个通信录结构struct friends_list、结构数组friend1、结构指针pstruct friends_listint num; /编号char name10; /姓名char telephone13; /电话friend10=1,"zhanshan","0769-11111111",*p=friend;将friend0赋值给friend5,不正确的操作语句是A、p5=friend0;B、*(friend+5)=friend0;C、*(p+5)=friend0;D、strcpy(friend5,friend0);参考答案:D12、关于嵌套结构的定义描述,正确的是:A、在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型B、在定义嵌套的结构类型时,必须先定义主结构类型,再定义成员的结构类型C、在定义嵌套的结构类型时,成员的结构类型和主结构类型的先后顺序无关紧要D、以上描述都不正确参考答案:A13、有以下函数:char *fun(char *p) return p; 该函数的返回值是。A、无确切的值B、形参p中存放的地址值C、一个临时存储单元的地址D、形参p自身的地址值参考答案:B14、以下定义与 ( ) 中的定义等价。int *p4;参阅P211-P212的内容A、int p4;B、int p;C、int (*p)4;D、int *(p4);参考答案:C答案说明:参阅P211的内容15、以下程序输出结果是( )。#include <stdio.h>main( )int a20,*p4,I,k=0;for(i=0;i<20;i+) ai=I;for(i=0;i<4;i+) pi=&ai*(i+2);for(i=0;i<4;i+) k+=pii;printf("%dn",k);A、数组元素引用不合法,输出结果不定B、32C、10D、6参考答案:B16、C语言允许将一条语句写在两行上,下列语句不正确是_。A、int a=b=8;B、int a,b=7;C、int a, b;D、int a,b参考答案:D17、以下程序的输出结果是_。main( ) int x=11,y=11;printf("%d,%dn",x-,-y);A、11,11B、10,10C、10,11D、11,10参考答案:D18、判断字符串 a 和 b 是否相等,应当使用_ 。A、if (a=b)B、if (a=b)C、if (strcpy(a,b)D、if (strcmp(a,b)参考答案:D19、判断字符串 a 是否大于 b ,应当使用_ 。A、if (a>b)B、if (strcmp(a,b)C、if (strcmp(b,a)>0)D、if (strcmp(a,b)>0)参考答案:D20、下面有关字符数组的描述中错误的是_ 。A、字符数组可以存放字符串 ;B、字符串可以整体输入,输出;C、可以在赋值语句中通过赋值运算对字符数组整体赋值;D、不可以用关系运算符对字符数组中的字符串进行比较。参考答案:C