2013年9月全国计算机等级《二级C语言程序设计》上机临考冲刺试卷(4)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2013年9月全国计算机等级《二级C语言程序设计》上机临考冲刺试卷(4)

开始答题

试卷预览

  • 1. 请补充函数proc(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:1234567,结果输出:7654321。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填人所编写的若干表达式或语句。试题程序:#include#include#includestdio.h>#includeunsignedlongproc(char*str){unsignedlongt=0:intk:inti=0;i=str|en(str);for(【1】;i>=0;i--){k=【2】;t=【3】;}returnt;}voidmain(){charstr[8];system("CLS");printf("Enterastringmadeupof'0'to'9'digitalcharacter:\n");gets(str);printf("Thestring,is:%s\n",str);if(strlen(str)>8)printf("Thestringistootong!");elseprintf("Theresult:%1u\n",proc(str));}[18分]
  • 2. 下列给定程序中,函数proc()的功能是:先将字符串s中的字符按顺序存放到t中,然后把S中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#include#includevoidproc(char*s,char*t){inti,s1;s1=strlen(s);for(i=0;i<S1;I++)//****found****t[i]=s[s1];for(i=0;i<S1;I++)t[s1+i]一s[i];t[2*s1]='\O0;}voidmain(){chars[100],t[100];system("CLS");print{("\nPleaseenterstrings:");scanf("%s",s);proc(s,t);printf("Theresultis:%s\n",t);}[24分]
  • 3. 请编写函数proc(),该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为132333431424344415253545则一维数组中的内容应该是132333431424344415253545。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:#includevoidproc(int(*s)[103,int*b,int*n,intrain.intnn){}voidmain(){intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<N;I++)printf("%3d",a[i]):printf("\n\n");}[18分]
  • 4. 定义下列结构体(联合)数组:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);执行语句printf("%d,%C",a[2].age,*(a[3].name+2))的输出结果为()。[1分]

    A15,A

    B16,H

    C16,A

    D17,H

  • 5. 有以下程序:main(){inti,j;for(j=10;j<11;j++){for(i=9;i<J;I++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。[1分]

    A11

    B10

    C9

    D1011

  • 6. 下列叙述中错误的是()。[1分]

    A在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

    B在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

    C在C语言中,外部变量的隐含类型是自动存储类别

    D在C语言中,函数形参的存储类型是自动(auto)类型的变量

  • 7. 有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main(){char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。[1分]

    A123,abe

    Babc.123

    C1bc,a23

    D321,cba

  • 8. 有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}程序执行后的输出结果是()。[1分]

    A7

    B3

    C2

    D0

  • 9. 对线性表进行二分法检索,其前提条件是()。[1分]

    A线性表以顺序方式存储,并按关键码值排好序

    B线性表以顺序方式存储,并按关键码的检索频率排好序

    C线性表以链式方式存储,并按关键码值排好序

    D线性表以链式方式存储,并按关键码的检索频率排好序

  • 10. 下列选项中不合法的十六进制数是()。[1分]

    A"0"xff

    B"0"X11

    C"0"x1g

    D”0”Xabc

  • 11. 有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}执行后的结果是()。[1分]

    A7

    B3

    C2

    D0

  • 12. 有以下程序#includevoidfun(char**p){++p;printf("%s",*p);}main(){char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的运行结果是()。[1分]

    AAfternoon

    Bfternoon

    CMorning

    Dorning

  • 13. 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。[1分]

    A数据库系统

    B文件系统

    C人工管理

    D数据项管理

  • 14. 下面程序输出的是()。main(){intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}[1分]

    A1,2,3,1,5,9,

    B1,3,5,1,3,j,

    C1,3,5,0,4,8,

    D1,3。5,-1,3,7,

  • 15. 下列程序的输出结果是()。#includemain(){inti;for(i=1;i=20)&&(i*i<=100))break;}printf("%d\n",i*i;}[1分]

    A49

    B36

    C25

    D64

  • 16. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。[1分]

    A-3

    B9

    C-12

    D6

  • 17. 用链表表示线性表的优点是()。[1分]

    A便于随机存取

    B花费的存储空间较顺序存储少

    C便于捅入和删除操作

    D数据元素的物理顺序与逻辑顺序相同

  • 18. 已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字堪的表达式是()。[1分]

    Aisupper(c)

    B'A'<=c<='Z'

    C'A'<=c&&c<='Z'

    Dc<=('z'-32)&&('a'-32)<=c

  • 19. 有下列程序:main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9);for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是()。[1分]

    A45

    B20

    C25

    D36

  • 20. 下列程序的运行结果是()。#includevoidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain(){inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}[1分]

    A5,4,3,2

    B2,3,4,5

    C2,2,2,2

    D5,5,5,5

  • 21. 有以下程序:main(){inta[]=(2,4,6,8,10},y=0,x,*P;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n,y");}程序运行后的输出结果是()。[1分]

    A10

    B11

    C14

    D15

  • 22. 对如下二叉树进行后序遍历的结果为()。[1分]

    AABCDEF

    BDBEAFC

    CABDECF

    DDEBFCA

  • 23. 以下程序的输出结果是()。main(){intx=0.5;charz='a';printf("%d\n",(x&1)&&(z<'2'));}[1分]

    A0

    B1

    C2

    D3

  • 24. 以下程序的输出结果是()。main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);[1分]

    AABCDFGHKL

    BABCDEFGU

    CEFGJKO

    DEFGHUKL

  • 25. 设fun()函数的定义形式为voidfun(charch,floatx){…}则下列对函数fun的调用语句中,正确的是()。[1分]

    Afun("abc",3.0);

    Bt=fun('D'.16.5);

    Cfun('65',2.8);

    Dfun(32,32);

  • 26. 若有以下定义:chara;intb;floatc;doubled;则表达式a*b+b-c值的类型为()。[1分]

    Afloat

    Bint

    Cchar

    Ddouble

  • 27. 设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0,a和b的值分别是()。[1分]

    A876和543.000000

    B87和6.000000

    C87和543.000000

    D76和543.000000

  • 28. 若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];[1分]

    At[2][0]

    Bt[2][2]

    Ct[1][2]

    Dt[2][1]

  • 29. 若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}[1分]

    A20

    B24

    C25

    D30

  • 30. 若有说明“chars1[30]="abc",s2[]="defghi";",则在使用函数stoat(s1,s2)后,结果是()。[1分]

    As1的内容更新为abcdefghi

    Bs1的内容更新为defghi\0

    Cs1的内容更新勾defghiabc\0

    Ds1的内容更新为abcdefghi\0

  • 31. 下列程序的输出结果是()。main(){inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}[1分]

    A6,1

    B2,1

    C6,0

    D2,0

  • 32. 下列程序的运行结果是()。#include#defineADD(x)x+xmain(){intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}[1分]

    Asum=18

    Bsum=10

    Csum=9

    Dsum=25

  • 33. 若有定义和语句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);则输出结果是()。[1分]

    A20,10

    B20,20

    C10,20

    D10,10

  • 34. 设a=l,b=2,c=3,d=4,则表达式:“a<B?A:B<)。[1分]

    A4

    B3

    C2

    D1

  • 35. 有以下程序:#includemain(){intx=4,y;do{y=x;if(!y)printf("x");elseprintf("y"):x--;}while(x);}程序的输出结果是()。[1分]

    Axyyx

    Byyyy

    Cyyxx

    Dyxyx

  • 36. 若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。[1分]

    Ascanf("%d",a,b,c);

    Bscanf("%d%d%d",a,b,c):

    Cscanf("%d",p);

    Dscanf("%d",&p);

  • 37. 若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<B?A:C<D?C:D的值是(&NBSP;&NBSP;&NBSP;)。[1分]

    A1

    B2

    C3

    D4

  • 38. 有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序运行后的输出结果是()。[1分]

    A235

    B0235

    C02356

    D2356

  • 39. 能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。[1分]

    A(x>=1)&&(x=100)&&(X<=110)

    B(x>=1)||(x=100)||(x<=1l0)

    C(x>=1)&&(x=100)&&(x<=110)

    D(x>=1)||(x=100)||(x<=l10)

  • 40. 设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。[1分]

    A1

    B2

    C8

    D4

  • 41. 在单链表中,增加头结点的目的是()。[1分]

    A方便运算的实现

    B使单链表至少有一个结点

    C标识表结点中首结点的位置

    D说明单链表是线性的链式存储实现

  • 42. 下列叙述中正确的是()。[1分]

    A只能在循环体内和switch语句体内使用break语句

    Beotinue语句的作用是结束整个循环的执行

    C在循环体内使用break语句或continue语句的作用相同

    D从多层循环嵌套中退出时,只能使用got0语句

  • 43. 下列程序的输出结果是()。#includemain(){inti,S=0;for(i=1;i<10;i++)if(!(i%2)&&!(i%3))s+=i;printf("%d\n",s);}[1分]

    A4

    B39

    C45

    D6

相关试卷
相关题库