c语言笔试练习题.docx

上传人:b****8 文档编号:29398538 上传时间:2023-07-23 格式:DOCX 页数:60 大小:39.58KB
下载 相关 举报
c语言笔试练习题.docx_第1页
第1页 / 共60页
c语言笔试练习题.docx_第2页
第2页 / 共60页
c语言笔试练习题.docx_第3页
第3页 / 共60页
c语言笔试练习题.docx_第4页
第4页 / 共60页
c语言笔试练习题.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

c语言笔试练习题.docx

《c语言笔试练习题.docx》由会员分享,可在线阅读,更多相关《c语言笔试练习题.docx(60页珍藏版)》请在冰豆网上搜索。

c语言笔试练习题.docx

c语言笔试练习题

3.1 综合练习题1

3.1.1 试题

一、  选择(1-30每题1分,31-45每题2分,共60分)

1.    在C语言中,如果下面的变量都是int类型,则输出的结果是(  )

#include

main()

{

intsum,pad;

sum=pad=5;pad=sum++,pad++,++pad;

printf("%d\n",pad);

}

A)7         B)6        C)5         D)4

2.    以下程序的输出结果是(  )

#include

main()

{inti=010,j=10;

printf("%d,%d\n",++i,j--);}

A)   11,10     B)9,10      C)010,9      D)10,9

3.    已知在ASCⅡ代码中,字母A的序号是65,以下程序的输出的结果是(  )

#include

main()

{charc1='A',c2='Y';

printf("%d,%d\n",c1,c2);}

A)     因输出格式不合法,输出错误信息  B)65,90   C)A,Y   D)65,89

4.    指针s所指字符串的长度为(  )

char*s="\\"Name\\Address\n";

A)19        B)15       C)18         D)说法不合法

5.    设有说明int(*ptr)[m];其中的标识符ptr是(  )

A)   M个指向整型变量的指针

B)   指向M个整型变量的函数指针

C)   一个指向具有M个整型元素的一维数组的指针

D)  具有M个指针元素的一维指针数组,每个元素都只能指向整型量

6.    语句while(!

E);中的条件!

E等介于

A)E==0     B)E!

=1     C)E!

=0      D)~E

7.    以下程序的输出结果是(   )

#include

main()

ptrintf("%d\n",NULL);}

A)不确定的(因变量无定义)     B)0       C)-1      D)1

8.    以下函数调用语句中含有(     )个实参。

func((exp1,exp2),(exp3,exp4,exp5));

A)1          B)2           C)4            D)5

9.    设有以下语句:

chara=3,b=6,c;

则c的二进制值是(     )

A)00011011  B)00010100    C)00011100    D)00011000

10.   下面的程序中(   )有错误(每行程序前面的数字是行号)。

行号     程序代码

1       #include

2        main()

3        {

4        floata[3]={0,0};

5        inti;

6        for(i=0;i<3,i++)scanf(“%d”,&a[i]);

7        for(i=1;i<3,i++)a[0]=a[0]+a[i];

8        printf(“%f\n”,a[0]);

9        }

A)没有         B)第4行         C)第6行        D)第8行

11.   设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是(  )

A)3             B)0              C)9              D)-12

12.   以下的for循环(   )

for(x=0,y=0;(y!

=123)&&(x<4);x++);

A)是无限循环  B)循环次数不定   C)执行4次   D)执行3次

13.   设有语句chara=`\72`;则变量a(    )

A)包含有1个字符          B)包含有2个字符  

C)包含有3个字符          D)说明不合法

14.   以下的程序的输出结果是(   )

#include

#include

main()

{inta=1,b=4,c=2;

floatx=10.5,y=4.0;

floatz;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printf("%f\n",z);}

A)14.00000       B)015.400000       C)13.700000      D)14.900000

15.   sizeof(double)是(   )

A)一种函数调用B)一个双精度型表达式C)一个整型表达式D)一个不合法的表达式

16.   C语言中(    )

A)不能使用do-while语句构成的循环

B)do-while语句构成的循环必须用break语句才能退出

C)do-while语句构成的循环,当while语句的中表达式值为非零时结束循环

D)do-while语句构成的循环,当while语句的中表达式值为零时结束循环

17.   以下的程序的输出结果是(   )

#include

#include

main()

{charstr[12]={'s','t','r','i','n','g'};

printf("%d\n",strlen(str));}

A)6           B)7           C)11            D)12

18.   以下的程序的输出结果是(   )

#include

main()

{inta=2,c=5;

printf("a=%%d,b=%%d\n",a,c);}

A)a=%2,b=%5     B)a=2,b=5     C)a=%%d,b=%%d    D)a=%d,b=%d

19.   以下的程序的输出结果是(   )

#include

main()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf("%d,%d\n",a,b);}

A)6,1            B)2,1           C)6,0            D)2,0

20. 以下的程序的输出结果是(   )

#include

main()

{inti;

for(i=1;i<=5;i++)

{if(i%2)

 printf("*");

elsecontinue;

printf("#");

}

printf("$\n");

}

A)*#*#*#$         B)#*#*#*$         C)*#*#$          D)#*#*$

21.   以下for语句构成的循环执行了(   )次。

#include

#defineN2  

#defineMN+1

#defineNUM(M+1)*M/2

main()

{inti,n=0;

for(i=1;i<=NUM;i++);

{n++;printf(“%d”,n);}

printf(“\n”);}

A)5              B)6               C)8             D)9

22.   设有以下语句,则(  )不是对a数组元素的正确引用,其中0≤i<10。

inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A)a[p-a]         B)*(&a[i])          C)p[i]           D)*(*(a+i))

23.   以下程序的输出结果是(   )

#include

#defineN6

main()

{charc[N];inti=0;

for(;i

for(i=0;i

输入以下三行,每行输入都是在第一列上开始,代表一个回车符:

a

b

cdef

A)abcdef        B)a        C)a        D)a

                b           b           b

               cd          cdef         c

                                       d

                                       e

                                       f

24.   以下程序调用findmax函数求数组中最大元素在数组中的下标,请选择填空

#include

findmax(s,t,k)

int*s,t,*k;

{intp;

for(p=0,(*k=p);p

if(s[p]>s[*k])

             ;

}

main()

{inta[10],i,k;

for(i=0;i<10;i++)

 scanf("%d",&a[i]);

findmax(a,10,&k);

printf("%d,%d\n",k,a[k]);

}

A)k=p       B)*k=p-s        C)k=p-s        D)*k=p

25. 有以下程序:

#include

unionpw

{inti;charch[2];}a;

main()

{a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}

程序的输出结果是(   )。

(注意:

ch[0]在低字节,ch[1]在高字节。

A)13        B)14         C)208         D)209

26. 有以下程序:

#include

main()

{intc;

while((c=getchar())!

='\n')

{

switch(c-'2')

{

case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

case4:

putchar(c+2);break;

}

}

printf("\n");

}

从第一列开始输入以下数据,代表一个回车符。

2743

程序的输出结果是(   )。

A)66877         B)66866         C)667777         D)668866

27. 以下程序的输出结果是(   )。

main()

{char*alpha[6]={"ABCD","EFGH""IJKL","MNOP","QRST","UVWX"};

char**p;

inti;

p=alpha;

for(i=0;i<4;i++)

printf("%s",p[i]);

printf("\n");

}

A)ABCDEFGHIJKL      B)ABCD    C)ABCDEFGHIJKLMNOP      D)AEIM

28. 以下程序的输出结果是(   )。

#include

#defineFUDGE(y)2.84+y

#definePR(a)printf("%d",(int)(a))

#definePRINT1(a)PR(a);putchar('\n')

main()

{intx=2;PRINT1(FUDGE(5)*x);}

A)11          B)12           C)13           D)15

29. 以下程序的输出结果是(   )。

#include

main()

{inti=1,j=3;

printf("%d,",i++);

{

inti=0;

i+=j*2;

printf("%d,%d,",i,j);

}

printf("%d,%d\n",i,j);

}

A)1,6,3,1,3     B)1,6,3,2,3     C)1,6,3,6,3     D)1,7,3,2,3

30. 以下程序的输出结果是(   )。

#include

main()

{intk=4,m=1,p;

p=func(k,m);

printf("%d,",p);

p=func(k,m);

printf("%d\n",p);

}

func(inta,intb)

{

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

A)8,17         B)8,16        C)8,20         D)8,8

31. 设有以下语句:

charstr[4][12]={“aaa”,“bbbb”,“ccccc”,”dddddd”},

*strp[4];

inti

for(i=0;i<4;i++)strp[i]=str[i];

   (    )不是对字符串的正确引用,其中0≤k<4

A)strp         B)str[k]       C)strp[k]       D)*strp

32. 设有以下语句:

charstr1[]=“string”,str2[8],*str3,*str4=“string”;

则(   )不是对库函数strcpy的正确调用,此库函数用业复制字符串。

A)strcpy(str1,“HELLO1”);     B)strcpy(str2,“HELLO2”);

C)strcpy(str3,“HELLO3”);     D)strcpy(str4,“HELLO4”);

33. C语言中形参的缺省存储类别是(    )。

A)自动(auto)   B)静态(static)    C)寄存器(register)    D)外部(extern)

34. 设有以下语句:

structst{intn;structst*next;};

staticstuctsta[3]={5,&a[1],7&a[2],9,'\0'},*p;

p=&a[0];

则表达式(  )的值是6。

A)p++->n     B)p->n++     C)(*p).n++     D)++p->n

35. 以下四个程序中,(   )不能对两个整型变量的值进行交换。

A)#include                   B)#include

main()                               main()

{inta=10,b=20;swap(&a,&b);            {inta=10,b=20;

printf("%d%d\n",a,b);                 swap(&a,&b);

}                                    printf("%d%d\n",a,b);

swap(p,q)                             }

int*p,*q;                              swap(p,q)

{                                     int*p,*q;

int*t;                                  {

t=(int)malloc(sizeof(int));                   intt;

t=p;*p=*q;*q=*t;  }                       t=*p;*p=*q;*q=t;  }

 

C)#include                      D)#include

main()                                  main()

{                                       {

int*a,*b;                                  inta=10,b=20;

a=10,b=20;                                 intx=&a,y=&b;

swap(a,b);\                                 swap(x,y);

printf("%d%d\n",*a,*b);                    printf("%d%d\n",a,b);

}                                          }

swap(p,q)                                  swap(p,q)

int*p,*q;                                   int*p,*q;

{                                         {

intt;                                       intt;

t=*p;*p=*q;*q=t;                             t=*p;*p=*q;*q=t;

}                                           }

 

二、  程序填空

1.   以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。

#include

main(intargc,char*argv[])

{

FILE*f1,*f2;charch;

if(argc<         )

{

printf("Parametersmissing!

\n");

exit(0);

}

if(((f1=fopen(argv[1],"r"))==NULL)||((f2=fopen(argv[2],"w"))==NULL))

{

printf("Cannotopenfile!

\n");

exit(0);

}

while(              )

  fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

2.   以下程序中的trap函数是一个用梯形法求定积分的通用函数。

梯形法求定积分的公式为:

s=((f(a)+f(b))/2+∑f(a+i*h))*h,h=|----|

i=1…n

其中,n为积分小区间数。

以下程序调用trap函数求定积分,被积函数是

f(x)=x*x+3*x+2,且n=1000,a=0,b=4.

#include

#include

doubletrap(double(*fun)(),doublea,doubleb)

{

 doublet,h;

 inti,n=1000;

 t=0.5*((*fun)(a)+(*fun)(b));

 h=fabs(a-b)/(double)(n);

 for(i=1;i<=n-1;i++)

 t=t+          ;

 t=t*h;

 return(t);

}

 

doublemypoly(doublex)

{

 return(x*x+3.0*x+2.0);

}

main()

{

 doubley,(*pf)();pf=           ;

 y=trap(pf,0.0,4.0);

 printf("%f\n",y);

}

3.   以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。

素数是只能被1和本身整除且大于1的自然数。

#include

main()

{inti,a[10],*p=a,sum=0;

printf("Enter10num:

\n");

for(i=0;i<10;i++)scanf("%d",&a[i]);

for(i=0;i<10;i++)

if(isprime(*(p+            ))==1){printf("%d",*(a+i));sum+=*(a+i);}

printf("\nThesum=%d\n",sum);}

isprime(x)

intx;

{inti;for(i=2;i<=x/2;i++)

if(x%i==0)return(0);

else       ;}

4.   以下程序调用invert 函数按逆序重新放置a数组中元素的值。

a数组中的值在

main函数中读入。

#include

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i

{t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;

invert(s,     ,j-1);

}

}

main()

{inta[N],i;

for(i=0;i

invert(a,0,N-1);

for(i=0;i

printf("\n");}

5.   以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL

#include

structlist{intdata;structlist*next;};

         creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:

\n");

scanf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1