资源描述:
《新编c语言期末练习题(有答案) - 副本》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言期末练习题C语言期末练习一、选择题1.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是(A)。A.*p=a;scanf("%ld",*p);B.p=(long*)malloc(sizeof(long));scanf("%ld",p);C.scanf("%ld",p=&a);D.scanf("%ld",&a);2.以下正确的说法是(B)。A.用户若需调用标准库函数,调用前必须重新定义B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义C.系统根本不允
2、许用户重新定义标准库函数D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用3.若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是(C)。A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];4.以下正确的函数定义形式是(A)。A.doublefun(intx,inty)B.doublefun(i
3、ntx;inty)C.doublefun(intx,inty);D.doublefun(intx,y);5.以下程序的输出结果是(C)。A.52B.51C.53D.97voidmain(){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]);}6.在C语言中,以下正确的说法是(A)。A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参和与其对
4、应的形参同名时才共占用存储单元D.形参是虚拟的,不占用存储单元7.以下程序的输出结果是(B)。A.6B.6789C.'6'D.789voidmain(){chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;inti;i=8;p=a+i;printf("%s",p-3);}8.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)。A.地址传递-24-C语言期末练习题B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用
5、户指定传递方式9.以下程序的运行结果是(A)。A.运行后报错B.66C.612D.55#includevoidmain(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d",*p,*q);}10.在C语言中,以下不正确的说法为(D)。A.在不同函数中可以使用相同名字的变量。B.形式参数是局部变量。C.在函数内定义的变量只在本函数范围内有效。D.在函数内的复合语句中定义的
6、变量在本函数范围内有效。11.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是(C)。A.p+1B.a+1C.a++D.++p12.以下正确的描述是(C)。A.C语言的预处理功能是指完成宏替换和包含文件的使用B.预处理指令只能位于C源程序文件的首部C.凡是C程序中行首以“#”标识的控制行都是预处理指令D.C语言的编译预处理就是对源程序进行初步的语法检查13.下面程序把数组元素中的最大值放入a[0]中,则在if语句中的条件表达式应该是(B)。A.p>
7、aB.*p>a[0]C.*p>*a[0]D.*p[0]>*a[0]voidmain(){inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;for(i=0;i<10;i++,p++)if()*a=*p;printf("%d",*a);}14.以下程序的运行结果是(B)。#includeSub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;Sub(10,5,&a);Sub(7,a,&b);-24-C语言期末
8、练习题Sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-715.以下程序的输出结果是(A)。A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi#include#includevoidmain(){char*a="abcdefghi";intk;voidfun(char*s);fun(a);puts(a);}vo