欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C期末考试复习题.docx

    • 资源ID:35363027       资源大小:27.32KB        全文页数:14页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C期末考试复习题.docx

    (1) int a4=5,3,8,9;其中 a3的值为(  D  )。 A. 5       B. 3       C. 8       D. 9(2) 以下 4 个数组定义中,(D  )是错误的。 A. int a7;      B.int n=5;  long bn;    C. char c5;    D.  int n,d7;(3) 对字符数组进展初始化,(   B  )形式是错误。 A. char c1 ='1', '2', '3'    B. char c2 =123;    C. char c310 = '1', '2', '3', '0'    D. char c4 ="123"(5) 在数组中,数组名表示( A.   )。 A. 数组第 1 个元素的首地址      2 个元素的首地址 C. 数组所有元素的首地址         1 个元素的首地址(6) 假设有以下数组说明,那么数值最小的和最大的元素下标分别是(B    )。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12;  A. 1,12    B. 0,11    C. 1,11    D. 0,12 (7) 假设有以下说明,那么数值为 4 的表达式是(  D )。   int a12 =1,2,3,4,5,6,7,8,9,10,11,12;   char c=a, d=4, g=3   A. ag-c    B. a4    C. a'd'-'c'    D. a'd'-c  (8) 设有定义:char s12 = "string"   那么printf( "%dn",strlen(s);  的输出是(  A  )。 A. 6    B. 7    C. 11    D. 12(9) 设有定义:char s12 = "string"  那么printf("%dn ", sizeof(s); 的输出是(    D)。 A. 6    B. 7    C. 11    D. 12(10) 合法的数组定义是(   A)。  A. char a = "string "    B. int a5 =0,1,2,3,4,5;    C. char a= "string "     D. char a =0,1,2,3,4,5(11) 下面的程序中哪一行有错误(  D  )。 #include <stdio.h> main()     float array5=0.0;       /第A行   int i;    for(i=0;i<5;i+)    scanf("%f",&arrayi);   for(i=1;i<5;i+)     array0=array0+arrayi;/第B行   printf("%fn",array0);    /第C行     A. 第A行   B. 第B行   C. 第C行   D. 没有(12) 下面哪一项为哪一项不正确的字符串赋值或赋初值的方式( C   )。 C    A. char *str; str="string"    B. char str7='s','t','r','i','n','g'    C. char str110;str1="string"    D. char str1="string",str2="12345678"(13) 假设有以下说明和语句,那么输出结果是哪一项(   C )。  (strlen(s)为求字符串s的长度的函数)  char s12="a book!"    printf("%d",strlen(s);    A. 12   B. 8   C. 7   D. 11(14) 假设有以下说明和语句,那么输出结果是(   C )。char str=""c:abc.dat""    printf("%s",str); A. 字符串中有非法字符    B. "c:abc.dat"     C. "c:abc.dat"     D. "c:abc.dat" (15)假设有以下语句,那么下面       是正确的描述。char x="123456" char y='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 Aa10 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;i<3;i+) scanf(“%d,&ai);6for(i=1;i<3;i+) a0=a0+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;i<3;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;i<3;i+) scanf(“%f,&ai);6 for(i=1;i<4;i+) a0=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,*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只能用来说明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<stdio.h> main() 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);程序运行后的输出结果是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 a10,*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;p<a;p+);D) for(p=a;a<p+10; +a);15.有以下程序段#include <stdio.h>int main() int x = 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("%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+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 b)字符'c' c)字符'c'的地址 d)无确定的输出结果23.以下程序段中,不能正确赋字符串编译时系统会提示错误的是CA) char s10="abcdefg" B) char t="abcdefg",*s=t;C) char s10;s="abcdefg" D) char s10;strcpy(s,"abcdefg");24.设已有定义: char *st="how are you" 以下程序段中正确的选项是A A) char a11, *p; strcpy(p=a+1,&st4); B) char a11; strcpy(+a, st); C) char a11; strcpy(a, st);D) char a, *p; strcpy(p=&a1,st+2);25.有以下程序  main()char a="programming",b="language"char *p1,*p2;int i;p1=a;p2=b;for(i=0;i<7;i+)if(*(p1+i)=*(p2+i)printf("%c",*(p1+i);输出结果是D A)gm B)rg C)or D)ga26设p1和p2是指向同一个字符串的指针变量,c为字符变量,那么以下不能正确执行的赋值语句是_B_. a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);27以下正确的程序段是_C_. a)char str20; b)char *p;scanf("%s",&str); scanf("%s",p); c)char str20; d)char str20,*p=str;scanf("%s",&str2); scanf("%s",p2);28假设有说明语句 char a="It is mine" char *p="It is mine"那么以下不正确的表达是_D_. a)a+1表示的是字符t的地址 b)p指向另外的字符串时,字符串的长度不受限制 c)p变量中存放的地址值可以改变 d)a中只能存放10个字符29下面程序的运行结果是_B_. #include <stdio.h> #include <string.h> main() char *s1="AbDeG" char *s2="AbdEg" s1+=2;s2+=2;printf("%dn",strcmp(s1,s2); a)正数 b)负数 c)零 d)不确定的值30.有以下程序 void f(int *x,int *y) int t; t=*x;*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=&a7; while(*p!=*q)f(p,q);p+;q-; for(i=0;i<8;i+) printf("%d,",ai); 程序运行后的输出结果是_C_。A8,2,3,4,5,6,7,1, B5,6,7,8,1,2,3,4, C1,2,3,4,5,6,7,8, D8,7,6,5,4,3,2,1,31. 已定义以下函数 C   fun int *p     return  *p;    该函数的返回值是  A不确定的值                      B形参p中存放的值  C形参p所指存储单元中的值        D形参p的地址值33.假设有以下函数首部 int fun(double x10, int *n)那么下面针对此函数的函数声明语句中正确的选项是DAint fun(double x, int *n);Bint fun(double , int );Cint fun(double *x, int n);Dint fun(double *, int *);34.有以下程序Avoid sum(int *a) a0=a1;main( ) intaa10=1,2,3,4,5,6,7,8,9,10,i;for(i=2;i>=0;i-) sum(&aai);printf("%dn",aa0); 执行后的输出结果是A)4 B)3 C)2 D)135.下段代码的运行结果是:Dint main()char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;A)hello B)null C)h D)发生异常36.下段程序的运行结果是:Bvoid main()char *p,*q;char str="Hello,Worldn"q = p = str;p+;print(q);print(p);void print(char *s)printf(“%s,s);A)H e B)Hello,World ello,WorldC)Hello,World Hello,World D)ello,World ell,World37.有以下程序void fun(char *c,int d)*c=*c+1;d=d+1;printf("%c,%c,",*c,d);void main()char a='A',b='a'fun(&b,a); printf("%c,%cn",a,b);程序运行后的输出结果是_D_。A) B,a,B,aB) a,B,a,BC) A,b,A,bD) b,B,A,b38、下面选项属于函数指针的是:DA、(int*)p(int, int) B、int *p(int, int) C、两者都是 D、两者都不是39、假设有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是_C_.A)(*p)max(a,b); B)*pmax(a,b);C) (*p)(a,b); D) *p(a,b);41、以下选项中声明了一个指针数组的是:EA)int *p2; B)int (*p)2; C)typedefint* intPtr;intPtr p2;D)A和BE)A和CF)B和C42、下面代码能通过编译的是:AA)int main()int a3=1,2,3;int *b3=&a1,&a2,&a3;int *p = b;return 0;B)int main()int a3=1,2,3;int *b3=a1,a2,a3;int *p = b;return 0;C)int main()int a3=1,2,3;int *b3=&a1,&a2,&a3;int *p = b; return 0;D)int main()int a3=1,2,3;int *b3=&a1,&a2,&a3;int *p = &b;return 0;2当定义一个构造体变量时,系统为它分配的内存空间是【】 A构造中一个成员所需的内存容量B构造中第一个成员所需的内存容量C构造体中占内存容量最大者所需的容量D构造中各成员所需内存容量之和4定义以下构造体数组cstruct c int x;int y; s2=1,3,2,7;语句printf("%d",s0.x*s1.x)的输出结果为 【 】 A) 14 B) 6 C) 2D) 215运行以下程序段,输出结果是 【a 】 struct country intnum; char name10; x5=1,"China",2,"USA",3,"France",4, "England",5, "Spanish"struct country *p; p=x+2;printf("%d,%c",p->num,(*p).name2);A) 3,a B) 4,g C) 2,U D) 5,S6下面程序的运行结果是【c 】。structKeyWordchar Key20;int ID;kw="void",1,"char",2,"int",3,"float",4,"double",5;main()printf("%c,%dn",kw3.Key0, kw3.ID);A) i,3B) n,3C) f,4D) l,48如果有下面的定义和赋值,那么使用【 】不可以输出n中data的值。astructSNodeunsigned id;int data;n,*p;p=&n;A) p.dataB) n.dataC) p->dataD) (*p).data9.根据下面的定义,能输出Mary的语句是B【】。struct person char name9;int age;structperson class5="John",17,"Paul",19,"Mary",18,"Adam",16;A) printf("%sn",class1.name); B) printf("%sn",class2.name);C) printf("%sn",class3.name); D) printf("%sn",class0.name); Astruct date int year;int month;int day; ;struct s struct date birthday; char name20; x4=2021, 10, 1, "guangzhou", 2021, 12, 25, "Tianjin"语句printf("%s,%d,%d,%d",x0.name,x1.birthday.year); 的输出结果为 【】。A) guangzhou,2021 B) guangzhou,2021 C) Tianjin,2021 D) Tianjin,202111运行以下程序段,输出结果是【D】。struct country intnum; char name20; x5=1,"China",2,"USA",3,"France",4, "England",5, "Spanish"struct country *p; p=x+2;printf("%d,%s",p->num,x0.name);A) 2,FranceB) 3,FranceC) 4,EnglandD) 3, China12定义以下构造体数组Dstruct intnum; char name10; x3=1,"china",2,"USA",3,"England"语句printf("n%d,%s",x1.num,x2.name)的输出结果为【】DA2,USAB3,England C1,chinaD2,England13定义以下构造体数组struct date int year;int month; ;struct s struct date birth; char name20; x4=2021,8,"hangzhou",2021,3,"Tianjin"语句printf("%c,%d",x1.name1,x1.birth.year);的输出结果为【】CAa,2021Bhangzhou,2021Ci,2021DTianjin,202114运行以下程序,输出结果是【B】 structcontryintnum; char name20;x5=1,"China",2,"USA",3,"France",4,"Englan",5,"Spanish"main()int i; for (i=3;i<5;i+)printf("%d%c",xi.num,xi.name0);A3F4E5SB4E5SCF4EDc2U3F4E(4)有以下程序 #include  "stdio.h"void WriteStr(char  *fn,char  *str)   FILE  *fp;   fp=fopen(fn,"W");   fputs(str,fp);   fclose(fp);main()   WriteStr("t1.dat","start");   WriteStr("t1.dat","end");程序运行后,文件t1.dat中的内容是 B                      AstartBendCstartendDendrt(5) 有如下程序 #include <stdio.h>main()FILE  *fp1;   fp1=fopen("f1.txt","aBA) goodabc   B) abcd    C) abc    D) abcgood(6) 有以下程序 #include <stdio.h>main( )  FILE *fp;  inti,k=0,n=0;   fp=fopen(“d1.dat,w);   for(i=1;i<4;i+)   fprintf(fp,%d,i);   fclose(fp);   fp=fopen(“d1.dat,r);   fscanf(fp,%d%d,&k,&n);   printf(“%d %dn,k,n);   fclose(fp);执行后输出结果是BA) 1  2    B) 123  0    C) 1  23    D)  0   0

    注意事项

    本文(C期末考试复习题.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开