C期末考试复习题.docx
《C期末考试复习题.docx》由会员分享,可在线阅读,更多相关《C期末考试复习题.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、(1)inta4=5,3,8,9;其中a3的值为(D)。A.5B.3C.8D.9(2)以下4个数组定义中,(D)是错误的。A.inta7;B.int n=5;longbn;C.charc5;D.intn,d7;(3)对字符数组进展初始化,( B)形式是错误。A.charc1=1,2,3;B.charc2=123;C.charc310=1,2,3,0;D.charc4=123;(5)在数组中,数组名表示(A.)。A.数组第1个元素的首地址2个元素的首地址C.数组所有元素的首地址1个元素的首地址(6)假设有以下数组说明,那么数值最小的和最大的元素下标分别是(B)。inta12=1,2,3,4,5,
2、6,7,8,9,10,11,12;A.1,12B.0,11C.1,11D.0,12(7)假设有以下说明,那么数值为4的表达式是(D)。inta12=1,2,3,4,5,6,7,8,9,10,11,12;charc=a,d=4,g=3A.ag-cB.a4C.ad-cD.ad-c(8)设有定义:chars12=string;那么printf(%dn,strlen(s);的输出是(A)。A.6B.7C.11D.12(9)设有定义:chars12=string;那么printf(%dn,sizeof(s);的输出是(D)。A.6B.7C.11D.12(10)合法的数组定义是(A)。A.chara=st
3、ring;B.inta5=0,1,2,3,4,5;C.chara=string;D.chara=0,1,2,3,4,5(11)下面的程序中哪一行有错误(D)。#includemain() floatarray5=0.0;/第A行inti; for(i=0;i5;i+)scanf(%f,&arrayi);for(i=1;i5;i+) array0=array0+arrayi;/第B行printf(%fn,array0);/第C行A.第A行B.第B行C.第C行D.没有(12)下面哪一项为哪一项不正确的字符串赋值或赋初值的方式(C)。CA.char*str;str=string;B.charstr7
4、=s,t,r,i,n,g;C.charstr110;str1=string;D.charstr1=string,str2=12345678;(13)假设有以下说明和语句,那么输出结果是哪一项(C)。(strlen(s)为求字符串s的长度的函数)chars12=abook!;printf(%d,strlen(s);A.12B.8C.7D.11(14)假设有以下说明和语句,那么输出结果是(C)。charstr=c:abc.dat;printf(%s,str);A.字符串中有非法字符B.c:abc.datC.c:abc.datD.c:abc.dat(15)假设有以下语句,那么下面是正确的描述。cha
5、rx=123456;chary=1,2,3,4,5,6;(B )A.x数组与y数组长度一样。B.x数组长度大于y数组长度。C.x数组长度小于y数组长度。D.x数组和y数组的赋值是非法的。(16)在C 语言中,引用数组元素时,其数组下标的数据类型允许是。C A整型常量B整型表达式C整型常量或整型表达式D任何类型的表达式(17)以下对一维整型数组a 的正确说明是。 DAinta(10);Bint n=10,an;Cint n;D#define SIZE 10scanf(“%d,&n);int aSIZE;int an;(18)假设有说明:int a10;那么对a 数组元素的正确引用是。 C Aa1
6、0 Ba3.5 Ca(5) Da10-10(19)在C 语言中,一维数组的定义方式为:类型说明符数组名; (C) A整型常量表达式 B整型表达式C整型常量 或整型表达式 D常量(20)以下能对一维数组a 进展正确初始化的语句是。 ( C)Aint a10=(0,0,0,0,0); Bint a10=;Cint a=0; Dint a10=10*1;(21)下面程序如果只有一个错误,那么是每行程序前面的数字表示行号 。(A)1 main()2 3 float a3=3*0;4 int i;5 for(i=0;i3;i+) scanf(“%d,&ai);6for(i=1;i3;i+) a0=a0+
7、ai;7 printf(“%dn,a0);8 A第3 行有错误B第7 行有错误C第5 行有错误D没有错误(22)下面程序中有错误9*/的行是每行程序前面的数字表示行号。(D)1 main()2 3 float a3=1;4 int i;5 scanf(“%d,&a);6 for(i=1;i3;i+) a0=a0+ai;7printf(“a0=%dn,a0);8 A3 B6 C7 D5(23)下面程序每行程序前面的数字表示行号。 (D)1 main()2 3float a3=0;4 int i;5 for(i=0;i3;i+) scanf(“%f,&ai);6 for(i=1;i4;i+) a0
8、=a0+ai;7 printf(“%fn,a0);8 A没有错误B第3 行有错误C第5 行有错误D第6 行有错误(24)对以下说明语句的正确理解是。 (B)int a10=6,7,8,9,10;A将5 个初值依次赋给a1至a5B将5 个初值依次赋给a0至a4C将5 个初值依次赋给a6至a10D因为数组长度与初值的个数不一样,所以此语句不正确1.变量的指针,其含义是指该变量的_B_. a)值 b)地址 c)名 d)一个标志2假设有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是_D_. a)a,point,*&a b)&*a,&a,*point c)*&point
9、,*point,&a d)&a,&*point ,point3假设有说明;int *p,m=5,n;以下正确的程序段的是_D_.a)p=&n; b)p=&n;scanf(%d,&p); scanf(%d,*p);c)scanf(%d,&n); d)p=&n; *p=n; *p=m;4. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是_B_. main()int *p,*q,a,b;p=&a;printf(“input a:);scanf(“%d,*p);a)*p表示的是指针变量p的地址b)*p表示的是变量a的值,而不是变量a的地址c)*p表示的是指针变量p的值d)*p
10、只能用来说明p是一个指针变量5. 已有变量定义和函数调用语句:int a=25; print_value(&a); 下面函数的正确输出结果是_D_. voidprint_value(int *x) printf(“%dn,+*x);a)23b)24 c)25 d)266.假设有说明:long *p,a;那么不能通过scanf语句正确给输入项读入数据的程序段是A A) *p=&a;scanf(%ld,p); B) p=(long *)malloc(8);scanf(%ld,p); C) scanf(%ld,p=&a); D) scanf(%ld,&a);7.有以下程序B #include mai
11、n() int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r;printf(%d,%d,%d,%dn,m,n,*p,*q);程序运行后的输出结果是A1,2,1,2 B1,2,2,1C2,1,2,1 D2,1,1,28.有以下程序 Cmain() int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c; *p =*p1*(*p2);printf(%dn,c);执行后的输出结果是A1B2C3D49.有以下程序 main() inta,k=4,m=4,*p1=&k,*p2=&m;a=p1=&m;printf(%dn,a);程序运行后的输出结果
12、是CA4B1C0 D运行时出错,无定值10.在16位编译系统上,假设有定义int a=10,20,30, *p=&a;,当执行p+;后,以下说法错误的选项是A Ap向高地址移了一个字节Bp向高地址移了一个存储单元Cp向高地址移了两个字节Dp与a+1等价11.有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是C A)5 B)6 C)8 D)912.假设有以下定义,那么对a数组元素的正确引用是_d_. int a5,*p=a; a)*&a5 b)a+2 c)*(p+5) d)*(a+2)13.假设有以下定义,那么p+5表示_A_.int a
13、10,*p=a; a)元素a5的地址 b)元素a5的值 c)元素a6的地址 d)元素a6的值14.设已有定义: int a10=15,12,7,31,47,20,16,28,13,19,*p; 以下语句中正确的选项是B A) for(p=a;a(p+10);a+); B) for(p=a;p(a+10);p+); C) for(p=a,a=a+10;pa;p+);D) for(p=a;ap+10; +a);15.有以下程序段#include int main() int x = 10, 20, 30;int *px = x;printf(%d, +*px); printf(%d, *px);p
14、x = x;printf(%d, (*px)+); printf(%d, *px);px = x;printf(%d, *px+); printf(%d, *px);px = x;printf(%d, *+px); printf(%dn, *px); return 0;程序运行后的输出结果是(A )A11,11,11,12,12,20,20,20 B20,10,11,10,11,10,11,10C11,11,11,12,12,13,20,20 D20,10,11,20,11,12,20,2016.设有如下定义:intarr=6,7,8,9,10;int *ptr;ptr=arr; *(ptr+
15、2)+=2;printf (%d,%dn,*ptr,*(ptr+2);那么程序段的输出结果为DA)8,10 B)6,8 C)7,9 D)6,1017.假设有定义:int a=2,4,6,8,10,12,*p=a;那么*(p+1)的值是_. *(a+5)的值是_A_.A)4 12 B)4 10 C)2 8 D)5 1721.有以下定义 char a10,*b=a;不能给数组a输入字符串的语句是BA)gets(a) B)gets(a0) C)gets(&a0); D)gets(b);22.下面程序段的运行结果是_C_. char *s=abcde; s+=2;printf(%d,s); a)cde
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末考试 复习题
限制150内