当前位置:文档之家› c语言题库2(计算机二级)

c语言题库2(计算机二级)

一、选择题1. 在C语言中,不合法的实型常量是()。

A. -0.123B. -.123C. -1.23e-1D. -123e-3.02. 设有说明语句int i,j;,则表达式i>=j||i<j的值是()。

A. 视i、j的具体值而定B. FALSEC. 4TRUED.13. 以下程序的运行结果是()。

main(){ unsigned a = 0x3ef, b;b = a << 2;printf("%x,%x\n", a, b);}A. 3ef,fb B, 3ef,fbc C fbc,3ef D fbc,fbc4. 设int a,b;,用语句scanf('%d%d",&b);输入a、b值时,不能作为输入数据分隔符的是()。

A. 空格B. ,C. 回车D. tab5. 以下程序的运行结果是()。

main(){ int i=3,j=2,k;k=i+j;{int k=8;if(i==3) printf("%2d",k);else printf("%2d",j);}printf("%2d%2d\n",i,k);}A.8 3 5B.8 3 8C.3 8 3D. 5 8 36. 以下程序的运行结果是()。

void main(){ int a=1;switch(a){case 1: printf("aaaa\n");case 2: printf("bbbb\n"); break;default: printf("cccc\n");}}A.aaaaB. aaaaC. aaaaD. aaaabbbb bbbb cccccccc7. 以下程序的运行结果是()。

main(){ int a,b,c,n=13;printf(" A B C\n");for(a=1;a<=n;a++)for(b=1;b<=n;b++)for(c=b;c<=n;c++)if(a*a==b*b+c*c)printf("%3d%3d%3d\n",a,b,c);}A. A B CB. A B CC. A B CD. A B C5 3 4 3 5 4 4 5 3 5 4 310 6 8 6 10 8 8 10 6 10 8 613 5 12 5 13 12 12 13 5 13 12 58. 以下程序的运行结果是()。

main(){ int i,s;i=0;s=1;do{s/=s+1;i++;}while(i<=10);printf("%2d%2d\n",i,s);}A. 12 2B. 11 2C. 10 0D. 11 09. 下列do...while循环的循环次数是()。

int i=5;do{printf("%d\n",i--);i--;}while(i!=0)。

A. 0B. 2C. 5D. 死循环10. 设int a[][4]={0,0};,则下列描述错误的是()。

A. 数组a的每个元素的值为0B. 二维数组a的第一维大小为1C. 数组a有4个元素D. 只有元素a[0][0]和a[0][1]的值为0,其余元素的值不确定11. 以下程序的运行结果是()。

main(){ int array[4][4];int i,j;for(i=0;i<4;i++)for(j=0;j<4;j++) array[i][j]=i+j;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3) array[i][j]=0;for(j=0;j<4;j++) printf("%2d",array[2][j]);printf("\n");}A. 2 0 0 5B. 1 0 0 4C. 0 1 2 0D. 0 4 5 012. 以下程序的运行结果是()。

main(){ int i;char aa[][3]={'a','b','c','d','e','f'};char (*p)[3]=aa;for(i=0;i<2;i++)if(i==0) aa[i][i+1]=**(p++);printf("%c\n",**p);}A. aB. bC. cD. d13. 以下关于指针概念的叙述中,错误的是()。

A. 一个指针变量只能指向同一类型的变量B. 一个变量的地址称为该变量的指针C. 两个同类型的指针变量可以作加减运算D. 任何指针变量都可以与空指针NULL进行比较14. 以下程序的运行结果是()。

age(n)int n;{ int c;if(n==1) c=10;elseif(n%2==0) c=age(n-1)+2;else c=age(n-1)+3;return(c);}main(){ printf("%d\n",age(5)); }A. 18B. 20C. 10D. 2115. 以下程序的运行结果是()。

main(){ void change_p();int *p,a[]={1,4,7,10};p=&a[1];change_p(p);printf("%d\n",*p);}void change_p(int *pi){ *pi +=2;pi +=2;*pi +=2;}A. 7B.8C. 5D. 616. 在C程序中,设一表达式含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是()。

A. intB. charC. unsignedD. long17. 以下程序的输出结果是()。

main(){ union example{ struct{ int x;int y;} in;int a[2];} e={ 0, 0 };e.a[0]=1; e.a[1]=2;printf("%d,%d\n",e.in.x,e.in.y);}A. 2,1B. 0,0C. 1,2D. 0,118. 以下程序运行后,输出的结果是()。

fun(char *w){ char t, *s1, *s2;for(s1=w, s2=w+strlen(s1)-1; s1<s2; s1++, s2--){ t = *s1;*s1 = *s2;*s2 = t;}}main(){ char *p="12345";fun(p);puts(p);}A.12345B. 54321C. 15115D. 5155119. 以下程序的运行结果是()。

#define M(x,y) x*ymain(){ int a=3,b=2,s1,s2,f12();s1=M(a+b,a-b);s2=M(a-b,a+b);printf("%d,%d,%d,%d\n",s1,s2,f12(a+b,a-b),f12(a-b,a+b));}f12(int x,int y){ return(x*y); }A. 7,-1,5,5B. 5,5,7,-1C. 5,5,5,5D. 7,-1,7,-120. 以下程序的可执行文件名是file.exe。

main(argc,argv)int argc;char *argv[];{ int i;for(i=2;i<argc;i++)printf("%s%c",argv[i],(i<argc-1)?' ':'\n');}现在DOS 命令行输入:file My C Language and Programming<回车>,其输出结果是( )。

A. C Language and ProgrammingB. My C Language and ProgrammingC. MyCLanguageandProgrammingD. file My C Language and Programming二、改错题1. 程序cmody021.c 的功能是:输出如下所示图形:*********************2. 程序cmody022.c 用以输出将5角钱换成1角和5分硬币,且每种硬币的个数大于0的各种组合。

三、填空题1. 补充程序ccon021.c ,使其计算满足下式的一位整数A 和B 的值。

A B× B A4 0 32. 补充程序ccon022.c ,使其实现输入若干整数,统计其中大于零和小于零的个数。

以零结束输入。

四、程序题1. 打开考生文件夹中的cprog021.c ,完成其中的函数fun ,该函数的数学表达式是:500log 8.1cos )(105++=x x x fun 例如:fun(0.96)=0.3162. 打开考生文件夹中的cprog012.c ,完成其中的函数fun2(int a[], int n, int b[], int c[]),实现:1) 将数组a 中大于-20的元素,依次存放到数组b 中;2) 将数组b 中的元素按照从小到大的顺序存放到数组c 中;3) 函数返回数组b 中的元素个数。

相关主题