您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C期末考试复习题2(1)
(1)inta[4]={5,3,8,9};其中a[3]的值为(D)。A.5B.3C.8D.9(2)以下4个数组定义中,(D)是错误的。A.inta[7];B.intn=5;longb[n];C.charc[5];D.intn,d[7];(3)对字符数组进行初始化,(B)形式是错误。A.charc1[]={'1','2','3'};B.charc2[]=123;C.charc3[10]={'1','2','3','\0'};D.charc4[]=123;(5)在数组中,数组名表示(A.)。A.数组第1个元素的首地址B.数组第2个元素的首地址C.数组所有元素的首地址D.数组最后1个元素的首地址(6)若有以下数组说明,则数值最小的和最大的元素下标分别是(B)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,12(7)若有以下说明,则数值为4的表达式是(D)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d=4,g=3A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c](8)设有定义:chars[12]=string;则printf(%d\n,strlen(s));的输出是(A)。A.6B.7C.11D.12(9)设有定义:chars[12]=string;则printf(%d\n,sizeof(s));的输出是(D)。A.6B.7C.11D.12(10)合法的数组定义是(A)。A.chara[]=string;B.inta[5]={0,1,2,3,4,5};C.chara=string;D.chara[]={0,1,2,3,4,5}(11)下面的程序中哪一行有错误(D)。#includestdio.hmain(){floatarray[5]={0.0};//第A行inti;for(i=0;i5;i++)scanf(%f,&array[i]);for(i=1;i5;i++)array[0]=array[0]+array[i];//第B行printf(%f\n,array[0]);//第C行}}A.第A行B.第B行C.第C行D.没有(12)下面哪一项是不正确的字符串赋值或赋初值的方式(C)。CA.char*str;str=string;B.charstr[7]={'s','t','r','i','n','g'};C.charstr1[10];str1=string;D.charstr1[]=string,str2[]=12345678;(13)若有以下说明和语句,则输出结果是哪一项(C)。(strlen(s)为求字符串s的长度的函数)chars[12]=abook!;printf(%d,strlen(s));A.12B.8C.7D.11(14)若有以下说明和语句,则输出结果是(C)。charstr[]=\c:\\abc.dat\;printf(%s,str);A.字符串中有非法字符B.\c:\\abc.dat\C.c:\abc.datD.c:\\abc.dat(15)若有以下语句,则下面是正确的描述。charx[]=123456;chary[]={'1','2','3','4','5','6'};(B)A.x数组与y数组长度相同。B.x数组长度大于y数组长度。C.x数组长度小于y数组长度。D.x数组和y数组的赋值是非法的。(16)在C语言中,引用数组元素时,其数组下标的数据类型允许是。CA)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式(17)以下对一维整型数组a的正确说明是。DA)inta(10);B)intn=10,a[n];C)intn;D)#defineSIZE10scanf(“%d”,&n);inta[SIZE];inta[n];(18)若有说明:inta[10];则对a数组元素的正确引用是。CA)a[10]B)a[3.5]C)a(5)D)a[10-10](19)在C语言中,一维数组的定义方式为:类型说明符数组名;(C)A)[整型常量表达式]B)[整型表达式]C)[整型常量]或[整型表达式]D)[常量](20)以下能对一维数组a进行正确初始化的语句是。(C)A)inta[10]=(0,0,0,0,0);B)inta[10]={};C)inta[]={0};D)inta[10]=”10*1”;(21)下面程序如果只有一个错误,那么是(每行程序前面的数字表示行号)。(A)1main()2{3floata[3]={3*0};4inti;5for(i=0;i3;i++)scanf(“%d”,&a[i]);6for(i=1;i3;i++)a[0]=a[0]+a[i];7printf(“%d\n”,a[0]);8}A)第3行有错误B)第7行有错误C)第5行有错误D)没有错误(22)下面程序中有错误9*/的行是(每行程序前面的数字表示行号)。(D)1main()2{3floata[3]={1};4inti;5scanf(“%d”,&a);6for(i=1;i3;i++)a[0]=a[0]+a[i];7printf(“a[0]=%d\n”,a[0]);8}A)3B)6C)7D)5(23)下面程序(每行程序前面的数字表示行号)。(D)1main()2{3floata[3]={0};4inti;5for(i=0;i3;i++)scanf(“%f”,&a[i]);6for(i=1;i4;i++)a[0]=a[0]+a[i];7printf(“%f\n”,a[0]);8}A)没有错误B)第3行有错误C)第5行有错误D)第6行有错误(24)对以下说明语句的正确理解是。(B)inta[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5]B)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确1.变量的指针,其含义是指该变量的____B_____.a)值b)地址c)名d)一个标志2.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是___D__.a)a,point,*&ab)&*a,&a,*pointc)*&point,*point,&ad)&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(“inputa:”);scanf(“%d”,*p);……}a)*p表示的是指针变量p的地址b)*p表示的是变量a的值,而不是变量a的地址c)*p表示的是指针变量p的值d)*p只能用来说明p是一个指针变量5.已有变量定义和函数调用语句:inta=25;print_value(&a);下面函数的正确输出结果是_____D___.voidprint_value(int*x){printf(“%d\n”,++*x);}a)23b)24c)25d)266.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是AA)*p=&a;scanf(%ld,p);B)p=(long*)malloc(8);scanf(%ld,p);C)scanf(%ld,p=&a);D)scanf(%ld,&a);7.有以下程序B#includestdio.hmain(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(%d,%d,%d,%d\n,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,28.有以下程序Cmain(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(%d\n,c);}执行后的输出结果是A)1B)2C)3D)49.有以下程序main(){inta,k=4,m=4,*p1=&k,*p2=&m;a=p1==&m;printf(%d\n,a);}程序运行后的输出结果是(C)A)4B)1C)0D)运行时出错,无定值10.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是(A)A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价11.有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是(C)A)5B)6C)8D)912.若有以下定义,则对a数组元素的正确引用是___d______.inta[5],*p=a;a)*&a[5]b)a+2c)*(p+5)d)*(a+2)13.若有以下定义,则p+5表示____A___.inta[10],*p=a;a)元素a[5]的地址b)元素a[5]的值c)元素a[6]的地址d)元素a[6]的值14.设已有定义:inta[10]={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.有以下程序段#includestdio.hintmain(){intx[]={10,20,30};int*px=x;printf(%d,,++*px);printf(%d,,*px);px=x;printf(%d,,(*px)++);printf(%d,,*px);px=x;printf(%d,,*px++);printf(%d,,*px);px=x;printf(%d,,*++px);printf(%d\n,*px);return0;}程序运行后的输出结果是(A)A)11,11,11,12,12,20,20,20B)20,10,11,10,11,10,11,10C)11,11,11,12,12,13,20,20D)20,10,11,20,11,12,20,2016.设有如下定义:intarr[]={6,7,8,9,10};int*ptr;ptr=arr;*(ptr+2)+=2;printf(%d,%d\n,*ptr,*(ptr+2));则程序段的输出结果为DA)8,10B)6,8C)7,9D)6,1017.若有定义:inta[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是______.*(a+5)的值是_____A____.A)412B)410C)28D)51721.有以下定义chara[10],*b=a;不能给数组a输入字符串的语句是(B)A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b);22.下面程序段的运行结果是__C_______.char*s=abcde;s+=2;printf(%d,s);a)cdeb)字符'c'c)字符'c'的地址d)无确定的输出结果23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C)A)chars[10]=abcdefg;B)chart[]=abcdefg,*s=t;C)chars[10];s=abcdefg;D)chars[10];strcpy(s,abcdefg);24.设已有定义:char*st=howareyou;下列程序段中正确的是(A)A)chara[11],*p;str
本文标题:C期末考试复习题2(1)
链接地址:https://www.777doc.com/doc-7027200 .html