c语言程序设计期末考试试卷(B)
8、判断字符串si是否大于字符串s2,应当使用 D A、if(sl>s2) B、if(a==b) C、if(strcpy(s2,s 1 )>0) D、if(stcmp(s 1 >s2)>0) 9、表达式__C_的值不是1o A、0?0:1B、 5%4C、!EOFD、NULL 10、以下有关函数的形参和实参的说法中正确的是 o A、实参和与其对应的形参各占用独立的存储单元 B、实参和与其对应的形参各占用一个的存储单元 C、只有当实参和与其对应的形参同名时才占用一个的存储单元 D、形参是虚拟的,不占用存储单元 11、以下有关宏替换的叙述不正确的是一D 。 A、宏替换不占用运行时间B、宏名无类型 C、宏替换只是字符替换D、宏名必须用大写字母表示 12、下面判断正确的是 。 A、char *a= china“;等介于 char *a;*a= china“; B、char str[ 10]={“china”};等介于 char str[10];str[]={“china”}; C、char *s= china“;等介于 char *s;s= china“; D、char *s=“china“;等介于 char s[10];*s=,,china,,; 13、设pl和p2是指向同一个字符串的指针变量,,c为字符变量,则以下不能正确执行 赋值语句的是B 。 A、c=*pl+*p2B、p2=c C、pl=p2D、c=*pl*(*p2) 14、函数f定义如下,执行语句asum=f (5) +f⑶;”后,sum的值应为A 。 int f(int m) { static int i=0; int s=0; for(;i B、++ C、 t=s;B、 t=s; if(u>s)t=u; C、if(u>s)t=s; else t=u;D、 t=u; if(u>s)t=s; 26、两次运行下面的程序,如果从键盘上分别输入6和4.则输出结果是一 A 。 main() ( int x; scanf(“%d“, if(x + +〉5)printf(“%d“,x); else printf(n%d\n“,x - -);} A、7 和 5 B、6 和 3 C、7 和 4 D、6 和 4 27、char 钿⑵={”abcd”,”ABCD”}; 则以下就法中正确的是D 。 A、aa数组元素的值分别是”abed”和ABCD” B、aa是指针变量,它指向含有两个数组元素的字符型一维数组C、aa数组的两 个元素分别存放的是含有4个字符的一维字符数组的首地址 D、aa数组的两个元素中各自存放了字符句和,A,的地址 28、int a[4][3]={1,2,345,6,7,8,9,10,11,12}; int (*prt)[3]=a,*p=a[0] 则下列能够正确表示数组元素a[l][2]的表达式是—。 A、*((*prt+l)[2])B、*(*(p+5)) C、(*prt+l)+2D、*(*(a+l)+2) 29、下列程序的输出结果是一D 。 main() ( char*pl,*p2,str[50]=“xyz“; pl=“abcd“; p2=“ABCDn; strcpy(str+2,strcat(p 1 +2,p2+1)); printf(“%sn,str); } A、xyabcAB B、abcABz C、ABabczD、xycdBCD 17、设有以下宏定义: #define N 3 #define Y(n) ( N+l)*n) 则执行语句:z=2 * (N+Y(5+l));后,z的值为D 。 A、出错 B、42 C、48 D、54 18、给出以下定