南昌大学 c答案第8章以后 函数预处理命令 结构体与共用体 文件.docx
- 文档编号:7221313
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:48
- 大小:35.94KB
南昌大学 c答案第8章以后 函数预处理命令 结构体与共用体 文件.docx
《南昌大学 c答案第8章以后 函数预处理命令 结构体与共用体 文件.docx》由会员分享,可在线阅读,更多相关《南昌大学 c答案第8章以后 函数预处理命令 结构体与共用体 文件.docx(48页珍藏版)》请在冰点文库上搜索。
南昌大学c答案第8章以后函数预处理命令结构体与共用体文件
第8章函数
1、C语言规定,在一个源程序中,main函数的位置()。
A.必须在最开始B.必须在系统调用的库函数的后面
C.可以任意D.必须在最后
[C]教师批改:
C
2、凡在函数中未指明存储类别的变量,其隐含的存储类别为A.auto型B.static型
C.extern型D.register型
[A]教师批改:
A
3、函数调用语句func((exp1,exp2),(exp3,expD,exp5));中,实参的个数为:
A.1B.2
C.DD.5
[B]教师批改:
B
4、以下程序的输出结果是
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);
}A.0B.29
C.31D.无定值
[C]教师批改:
C
5、以下对C语言函数的有关描述中,正确的是A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
[A]教师批改:
A
6、以下所列的各函数首部中,正确的是A.voidplay(var:
Integer,varb:
Integer)B.voidplay(inta,b)
C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)
[C]教师批改:
C
7、以下叙述中不正确的是()A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C中,外部变量的隐含类别是自动存储类别D.在C中,函数形参可以说明为register变量
[C]教师批改:
C
8、用数组名作为函数调用时的实参,实际上传送给形参的是A.数组首地址B.数组的第一个元素值
C.数组中全部元素的值D.数组元素的个数
[A]教师批改:
A
9、当调用函数时,实参是一个数组名,则向函数传送的是A.数组的长度B.数组的首地址
C.数组每一个元素的地址D.数组每个元素中的值
[B]教师批改:
B
10、函数调用:
strcat(strcpy(str1,str2),str3)的功能是A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3中
[C]教师批改:
C
11、一个C程序的执行是从()。
A.本程序的main函数开始,到main函数的结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束
C.本程序文件的main开始,到本程序文件的最后一个函数的结束D.本程序文件的第一个函数开始,到本程序文件的main函数的结束
[A]教师批改:
A
12、一个C语言程序是由()。
A.一个主程序和若干子程序组成B.函数组成
C.若干过程组成D.若干子程序组成
[B]教师批改:
B
13、以下说法中正确的是A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分
[C]教师批改:
C
14、以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面
[D]教师批改:
D
15、当调用函数时,实参是一个数组名,则向函数传送的是_____。
A)数组的长度B)数组的首地址
C)数组每一个元素的地址D)数组每个元素中的值
[B]教师批改:
B
16、请读程序:
#include
f(inb[],intn)
{inti,r;
r=1;
for(i=0;i<=n;i++)r=r*b[i];
returnr;
}
main()
{intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%dn",x);
}
上面程序的输出结果是_____。
A)720B)120
C)24D)6
[B]教师批改:
B
第9章预处理命令
1、程序中定义以下宏#defineS(a,b)a*b若定义intarea;且令area=S(3+1,3+D),则变量area的值为:
A.10B.12
C.21D.28
[A]教师批改:
A
2、以下关于宏替换的叙述不正确的是:
A.宏替换只是字符替换B.宏名无类型
C.宏替换不占用运行时间D.宏替换不占用编译时间
[D]教师批改:
D
3、执行下列语句后,a的值为:
inta;
#defineM(x,y)(x*y)
a=M(1+2,3);A.9B.7
C.5D.以上均不是
[B]教师批改:
B
4、下列四组选项中,均不是C语言关键字的选项是()。
A.defineIFtypeB.getccharprintf
C.invludescanfcaseD.whilegopow
[A]教师批改:
A
第10章指针
1、若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是A)p+1B)*(p+3)
C)*(p+1)+3D)*(p[0]+2))
[D]教师批改:
D
2、若有定义:
int*p[3];,则以下叙述中正确的是A)定义了一个基类型为int的指针变量p,该变量具有三个指针B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C)定义了一个名为*p的整型数组,该数组含有三个int类型元素D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
[B]教师批改:
B
3、有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%dn",a[1][2]);
}
程序运行后的输出结果是A)3B)6
C)9D)2
[B]教师批改:
B
4、若有以下定义和语句:
ints[4][5],(*ps)[5];
ps=s;
则对s数组元素的正确引用形式是A)ps+1B)*(ps+3)
C)ps[0][2]D)*(ps+1)+3
[C]教师批改:
C
5、若有以下的定义:
intt[3][2];能正确表示t数组元素地址的表达式是A)&t[3][2]B)t[3]
C)t[1]D)t[2]
[D]教师批改:
D
6、下列程序执行后的输出结果是
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=p;i<9;i++)p[i]=i+1;
printf("%dn",a[1][2]);
}A)3B)6
C)9D)随机数
[B]教师批改:
B
7、以下程序的输出结果是
main()
{inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)printf("%d",p[i]);
}A)52B)51
C)53D)97
[C]教师批改:
C
8、执行以下程序段后,m的值为
inta[2][3]={{1,2,3},{4,5,6}};
intm,*p;
p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));A)15B)14
C)13D)12
[A]教师批改:
A
9、若有以下说明:
intw[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是A)*w[1]+1B)p++,*(p+1)
C)w[2][2]D)p[1][1]
[D]教师批改:
D
10、若有以下的说明和语句:
main()
{intt[3][2],*pt[3],k;
fpr(k=o;k<3;k++)pt[k]=t[k];
}
则以一选项中能正确表示t数组元素地址的表达式是A)&t[3][2]B)*pt[0]
C)*(pt+1)D)&pt[2]
[C]教师批改:
C
11、设有以下定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是A)*((*prt+1)[2])B)*(*(p+5))
C)(*prt+1)+2D)*(*(a+1)+2)
[D]教师批改:
D
12、下面程序的输出是
intaa[3][3]={{2},{4},{6}};
main()
{inti,*p=&aa[0][0];
for(i=0;i<2;i++)
{if(i==0)
aa[i][i+1]=*p+1;
else
++p;
printf("%d",*p);}
}A)23B)26
C)33D)36
[A]教师批改:
A
13、若有以下说明和语句,请选出哪个是对c数组元素的正确引用
intc[4][5],(*cp)[5];
cp=c;A)cp+1B)*(cp+3)
C)*(cp+1)+3D)*(*cp+2)
[D]教师批改:
D
14、设有说明int(*ptr)[m];其中的标识符ptr是。
A)M个指向整型变量的指针B)指向M个整型变量的函数指针
C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量
[C]教师批改:
C
15、有以下程序,其中函数f的功能是将多个字符串按字典顺序排序
#include
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;} } main() {char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"}; f(p,5); printf("%dn",strlen(p[1])); } 程序运行后的输出结果是()A)2B)3 C)6D)4 [D]教师批改: D 16、有以下程序 main() { chars[]="159",*p; p=s; printf("%c",*p++); printf("%c",*p++); } 程序运行后的输出结果是()A)15B)16 C)12D)59 [A]教师批改: A 17、有以下函数 fun(char*a,char*b) { while((*a! =‘‘)&&(*b! =‘‘)&&(*a==*b)) {a++;b++;} return(*a-*b); } 该函数的功能是A)计算a和b所指字符串的长度之差B)将b所指字符串复制到a所指字符串中 C)将b所指字符串连接到a所指字符串后面D)比较a和b所指字符串的大小 [D]教师批改: D 18、有以下程序 point(char*p) { p+=3; } main() {charb[4]={‘a‘,‘b‘,‘c‘,‘d‘},*p=b; point(p);printf("%cn",*p); } 程序运行后的输出结果是A)aB)b C)cD)d [A]教师批改: A 19、有以下程序 main() {charstr[][10]={"China","Beijing"},*p=str; printf("%sn",p+10); } 程序运行后的输出结果是A)ChinaB)Bejing C)ngD)ing [B]教师批改: B 20、有以下程序 main() {chars[]="ABCD",*p; for(p=s+1;p } 程序运行后的输出结果是A)ABCD BCD CD DB)A B C D C)B C DD)BCD CD D [D]教师批改: D 21、有以下程序 main() {char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%dn”,strlen(p[4])); } 执行后输出结果是A)2B)3 C)4D)5 [A]教师批改: A 22、已定义以下函数 fun(char*p2,char*p1) {while((*p2=*p1)! =‘’){p1++;p2++;}} 函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有‘’ [A]教师批改: A 23、有以下程序 #include main() {char*p=“abcdeOfghjik”; printf(“%dn”,strlen(p)); } 程序运行后的输出结果是A)12B)15 C)6D)5 [D]教师批改: D 24、以下程序的输出结果是 #include #include main() {charb1[8]="abcdefg",b2[8],*pb=b1+3; while(--pb>=b1)strcpy(b2,pb); printf("%dn",strlen(b2)); }A)8B)3 C)1D)7 [D]教师批改: D 25、以下程序的输出结果是 main() {charch[3][4]={"123","456","78"},*p[3]; inti; for(i=0;i<3;i++)p[i]=ch[i]; for(i=0;i<3;i++)printf("%s",p[i]); }A)123456780B)123456780 C)12345678D)147 [C]教师批改: C 26、以下程序的输出结果是 main() {char*s="12134211";intv[4]={0,0,0,0},k,i; for(k=0;s[k];k++) {switch(s[k]) {case‘1‘: i=0; case‘2‘: i=1; case‘3‘: i=2; case‘4‘: i=3; } v[i]++; } for(k=0;k<4;k++)printf("%d",v[k]); }A)4211B)0008 C)4678D)8888 [B]教师批改: B 27、以下程序运行后,输出结果是 main() {charch[2][5]={‘693","825"},*p[2]; inti,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]=‘0‘&&p[i][j]<=‘9‘;j+=2) s=10*s+p[i][j]-‘0‘; printf("%dn",s); }A)6385B)22 C)33D)693825 [A]教师批改: A 28、以下程序运行后,输出结果是 #inchude #inchude fun(char*w,intn) {chart,*s1,*s2; s1=w: s2=w+n-1; while(s1 {t=*s1++; *s1=*s2--; *s2=t; } } main() {char*p; p="1234567"; fun(p,strlen(p)); puts(p); }A)1234567B)7654321 C)1711717D)7177171 [C]教师批改: C 29、有以下程序 main() {chara[]="programming",b[]="language"; char*p1,*p2; inti; p1=a;p2=b; for(i=0;i<7;i++) if(*(p1+i)==*(p2+i))printf("%c",*(p1+i)); } 输出结果是A)gmB)rg C)orD)ga [D]教师批改: D 30、若有以下定义: chars[20]="programming",*ps=s; 则不能代表字符o的表达式是A)ps+2B)s[2] C)ps[2]D)ps+=2,*ps [A]教师批改: A 原文地址: 南昌大学计算机C语言答案8作者: 硪乜甾Wang 31、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%dn",strlen(strcpy(s1,s2))); 则输出结果是_____A)4B)5 C)9D)10 [A]教师批改: A 32、下面程序的输出是 #include main() {char*a="abcdefgh"; fun(a);puts(a);} fun(char*s) {intx=0,y;charc; for(y=strlen(s)-1;x C)dcbahgfeD)hgfedcba [D]教师批改: D 33、设有如下函数定义: intf(char*s) {char*p=s; while(*p! =‘‘)p++; return(p-s);} 如果在主程序中用下面的语句调用上述函数,则输出结果为 printf("%dn",f("goodbey! "));A)3B)6 C)8D)0 [C]教师批改: C 34、下面函数的功能是 intfunl(char*x) {char*y=x; while(*y++); return(y-x-1);}A)求字符串的长度B)比较两个字符串的大小 C)将字符串x复制到字符串yD)将字符串x连接到字符串y后面 [A]教师批改: A 35、请读程序片段: charstr[]="ABCD",*p=str; printf("%dn",*(p+4)); 上面程序的输出结果是A)68B)0 C)字符"D"的地址D)不确定的值 [B]教师批改: B 36、设有如下的程序段: charstr[]="Hello"; char*ptr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为A)‘o‘B)‘‘ C)不确定的值D)‘o‘的地址 [B]教师批改: B 37、设有以下语句: charstr[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4]; inti; for(i=0;i<4;i++)strp[i]=str[i]; ()不是对字符串的正确引用,其中0≤k<4。 A)strpB)str[k] C)strp[k]D)*strp [A]教师批改: A 38、假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是: A.p2=**p1B.p2=*&p1 C.p2=*p1D.p2=&*p1 [D]教师批改: D 39、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%dn",strlen(strcpy(s1,s2))); 则输出结果是A.4B.5 C.9D.10 [A]教师批改: A 40、下列程序段的输出结果是 voidfun(int*x,int*y) {printf("%d%d",*x,*y);*x=3;*y=4;} main() {intx=1,y=2; fun(&y,&x); printf("%d%d",x,y); }A.2143B.1212 C.1234D.2112 [A]教师批改: A 41、以下程序的输出结果是 fut(int**s,intp[2][3]) {**s=p[1][1];} main() { inta[2][3]={1,3,5,7,9,11},*P; p=(int*)malloc(sizeof(int)); fut(&p,a); print("%",*p); } A.1B.7 C.9D.11 [C]教师批改: C 42、假设指针p已经指向某个整型变量x,则*p相当于: A.&xB.&p C.xD.*x [C]教师批改: C 43、若有定义: inta[3][4];不能表示数组元素a[1][1]的是A.*(a[1]+1)B.*(&a[1][1]) C.(*(a+1))[1]D.*(a+5) [D]教师批改: D 44、若有定义和语句: int**pp,*p,a=10,b=20; pp=&p;p=&a;p=&b; printf("%d,%dn",*p,**pp); 则输出结果是()A.10,10B.10,20 C.20,10D.20,20 [D]教师批改: D 45、若有以下的定义: inta[]={1,2,3,D,5,6,7,8,9,10},*p=a则值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 c答案第8章以后 函数 预处理命令 结构体与共用体 文件 答案 以后 预处理 命令 结构 共用
![提示](https://static.bingdoc.com/images/bang_tan.gif)