C语言习题集1.docx

上传人:b****8 文档编号:30439417 上传时间:2023-08-15 格式:DOCX 页数:52 大小:48.75KB
下载 相关 举报
C语言习题集1.docx_第1页
第1页 / 共52页
C语言习题集1.docx_第2页
第2页 / 共52页
C语言习题集1.docx_第3页
第3页 / 共52页
C语言习题集1.docx_第4页
第4页 / 共52页
C语言习题集1.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

C语言习题集1.docx

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

C语言习题集1.docx

C语言习题集1

试题一

(11)以下叙述中正确的是

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚,具有其他语言的一切优点

(12)C语言中用于结构化程序设计的3种基本结构是

   A)顺序结构、选择结构、循环结构   B)if,switch,break

C)for,while,do-while   D)if,for,continue

(13)C语言中最简单的数据类型包括

A)整型、实型、逻辑型   B)整型、实型、字符型

C)整型、字符型、逻辑型   D)字符型、实型、逻辑型

(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是

   A)a:

=b+1   B)a=b=c+2   C)int18.5%3   D)a=a+7=c+b

(15)下列可用于C语言用户标识符的一组是

   A)void,define,WORD   B)a3_b3,_123,Car

   C)For,-abc,IFCase   D)2a,DO,sizeof

(16)C语言中运算对象必须是整型的运算符是

   A)%=   B)/   C)=   D)<=

(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是

   A)a==1   B)++i;   C)a=a++=5;   D)a=int(i);

(18)已知

   intt=0;

   while(t=1)

   {...}

   则以下叙述正确的是

   A)循环控制表达式的值为0   B)循环控制表达式的值为1

   C)循环控制表达式不合法   D)以上说法都不对

(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是

   A)10<回车>22<回车>33<回车>   B)10.0,22.0,33.0<回车>

   C)10.0<回车>22.033.0<回车>   D)10 22<回车>33<回车>

(20)有如下程序:

   main()

   {

   intx=1,a=0,b=0;

   switch(x){

   case0:

b++;

   case1:

a++;

   case2:

a++;b++;

   }

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

   该程序的输出结果是

   A)a=2,b=1   B)a=1,b=1   C)a=1,b=0   D)a=2,b=2

(21)有以下程序

   main()

   {inti=1,j=1,k=2;

   if((j++||k++)&&i++)

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

   }

   执行后输出结果是

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

(22)有如下程序

   main()

   {floatx=2.0,y;

   if(x<0.0)y=0.0;

   elseif(x<10.0)y=1.0/x;

   elsey=1.0;

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

   该程序的输出结果是

   A)0.000000   B)0.250000   C)0.500000   D)1.000000

   (23)有如下程序:

   main()

   {intn=9;

   while(n>6){n--;printf("%d",n);}

   }

   该程序的输出结果是

   A)987   B)876   C)8765   D)9876

(24)在下列选项中,没有构成死循环的是

   A)inti=100;

   while

(1)

   {i=i%100+1;

   if(i>100)break;

   }

   

   B)for(;;);

   C)intk=10000;

   do{k++;}while(k>10000);

   D)ints=36;

   while(s)--s;

(25)设intx=1,y=1;表达式(!

x||y--)的值是

   A)0   B)1   C)2   D)-1

(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

A)函数调用可以作为独立的语句存在   B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中   D)函数调用可以作为一个函数的形参

(27)有以下程序

   floatfun(intx,inty)

   {return(x+y);}

   main()

   {inta=2,b=5,c=8;

   printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

   }

   程序运行后的输出结果是

   A)编译出错   B)9   C)21   D)9.0

(28)若有以下调用语句,则不正确的fun函数的首部是

   main()

   {…

   inta[50],n;

   …

   fun(n,&a[9]);

   …

   }

   A)voidfun(intm,intx[])   B)voidfun(ints,inth[41])

   C)voidfun(intp,int*s)   D)voidfun(intn,inta)

(29)fseek函数的正确调用形式是

  A)fseek(文件指针,起始点,位移量)   B)fseek(文件指针,位移量,起始点)

 C)fseek(位移量,起始点,文件指针)   D)fseek(起始点,位移量,文件指针)

(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是

   A)EOF   B)-1   C)1   D)NULL

(31)若有说明语句:

charc='\72';则变量c

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

C)包含3个字符   D)说明不合法,c的值不确定

(32)若有说明inta[3][4];则a数组元素的非法引用是

  A)a[0][2*1]  B)a[1][3] C)a[4-2][0] D)a[0][4]

(33)设有以下说明语句

   structstu

   {inta;

   floatb;

   }stutype;

   则下面的叙述不正确的是

 A)struct是结构体类型的关键字   B)structstu是用户定义的结构体类型

 C)stutype是用户定义的结构体类型名   D)a和b都是结构体成员名

(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是

   A)整型常量   B)整型表达式

   C)整型常量或整型表达式   D)任何类型的表达式

(35)若运行时给变量x输入12,则以下程序的运行结果是

   main()

   {intx,y;

   scanf("%d",&x);

   y=x>12?

x+10:

x-12;

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

   }

   A)0   B)22   C)12   D)10

(36)以下说法正确的是

   A)C语言程序总是从第一个的函数开始执行

   B)在C语言程序中,要调用函数必须在main()函数中定义

   C)C语言程序总是从main()函数开始执行

   D)C语言程序中的main()函数必须放在程序的开始部分

(37)表达式0x13^0x17的值是

   A)0x04   B)0x13   C)0xE8   D)0x17

(38)有以下程序

   #defineF(X,Y)(X)*(Y)

   main()

   {inta=3,b=4;

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

   }

   程序运行后的输出结果是

   A)12   B)15   C)16   D)20

(39)下列程序执行后的输出结果是

   voidfunc(int*a,intb[])

   {b[0]=*a+6;}

   main()

   {inta,b[5];

   a=0;b[0]=3;

   func(&a,b);printf("%d\n",b[0]);

   }

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

(40)若有下面的程序段:

   chars[]="china";char*p;p=s;

   则下列叙述正确的是

   A)s和p完全相同   B)数组s中的内容和指针变量p中的内容相等

   C)s数组长度和p所指向的字符串长度相等   D)*p与s[0]相等

(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序

   voidsort(inta[],intn)

   {inti,j,t;

   for(i=0;i

   for(j=i+1;j

   if(a[i]

   }

   main()

   {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

   sort(&aa[3],5);

   for(i=0;i<10;i++)printf("%d,",aa[i]);

   printf("\n");

   }

   程序运行后的输出结果是

   A)1,2,3,4,5,6,7,8,9,10,   B)10,9,8,7,6,5,4,3,2,1,

   C)1,2,3,8,7,6,5,4,9,10,   D)1,2,10,9,8,7,6,5,4,3,

(42)以下程序的运行结果是

   #include"stdio.h"

   main()

   {structdate

   {intyear,month,day;}today;

   printf("%d\n",sizeof(structdate));

   }

   A)6   B)8   C)10   D)12

(43)若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是

   A)a,point,*&a   B)&*a,&a,*point

   C)*&point,*point,&a   D)&a,&*point,point

(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是

   A)地址传递   B)单向值传递

   C)由实参传形参,再由形参传实参   D)传递方式由用户指定

(45)已定义以下函数

   fun(char*p2,char*p1)

   {

   while((*p2=*p1)!

='\0'){p1++;p2++;}

   }

   函数的功能是

   A)将p1所指字符串复制到p2所指内存空间 

  B)将p1所指字符串的地址赋给指针p2

   C)对p1和p2两个指针所指字符串进行比较   

D)检查p1和p2两个指针所指字符串中是否有'\0'

(46)若执行下述程序时,若从键盘输入6和8时,结果为

   main()

   {inta,b,s;

   scanf("%d%d",&a,&b);

   s=a

   if(a

   s=b;

   s*=s;

   printf("%d",s);

   }                               

   A)36                             B)64                           

   C)48                             D)以上都不对                   

(47)fscanf函数的正确调用形式是                                    

   A)fscanf(fp,格式字符串,输出表列);   

B)fscanf(格式字符串,输出表列,fp); 

C)fscanf(格式字符串,文件指针,输出表列);  

D)fscanf(文件指针,格式字符串,输入表列);                      

(48)下列关于C语言数据文件的叙述中正确的是                         

   A)文件由ASCII码字符序列组成,C语言只能读写文本文件             

   B)文件由二进制数据序列组成,C语言只能读写二进制文件            

   C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

   D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

(49)有以下程序                                                    

   voidss(char*s,chart)                                       

   {while(*s)                                                    

   {if(*s==t)*s=t-'a'+'A';                                      

   s++;                                                            

   }                                                               

   }                                                               

   main()                                                        

   {charstr1[100]="abcddfefdbd",c='d';                          

   ss(str1,c);printf("%s\n",str1);                           

   }                                                               

   程序运行后的输出结果是                                          

   A)ABCDDEFEDBD   B)abcDDfefDbD   CabcAAfefAbA  D)Abcddfefdbd 

(50)若以下定义:

                                                   

   structlink                                                     

   {intdata;                                                      

   structlink*next;                                              

   }a,b,c,*p,*q;                                                  

   且变量a和b之间已有如下图所示的链表结构:

指针p指向变量a,q指向变量c。

则能够把c插入到a和b之间并形成新的链表的语句组是:

A)a.next=c;c.next=b;    B)p.next=q;q.next=p.next;  

C)p->next=&c;q->next=p->next; D)(*p).next=q;(*q).next=&b; 

二、填空题

(6)设y是int型,请写出y为奇数的关系表达式【6】。

(7)设inta=5,b=6,表达式(++a==b--)?

++a:

--b的值是【7】 。

(8)下列程序的输出结果是【8】。

maim ()

{charb[]="Helloyou";

b[5]=0;

printf("%s\n",b);}

(9)当调用函数时,实参是一个数组名,则向函数传递的是【9】。

(10)以下程序的输出结果是【10】。

inta=1234;

printf("%2d\n",a);

(11)用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。

(12)以下程序的输出结果是【12】。

main()

{inta=0;

a+=(a=8);

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

(13)函数voidfun(float*sn,intn)的功能是:

根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。

请填空。

 voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【13】*f;

w=f/(2*i+1);

s+=w;}

【14】=s;}

(14)函数fun的功能是:

根据以下公式求p的值,结果由函数值返回。

m与n为两个正数且要求m>n。

 例如:

m=12,n=8时,运行结果应该是495.000000。

请在题目的空白处填写适当的程序语句,将该程序补充完整。

#include

#include

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【15】;

for(i=1;i<=n;i++)【16】;

for(i=1;i<=m-n;i++)p=p/i;

returnp;}

main()

{clrscr();

printf("p=%f\n",fun(12,8));}

(15)该程序运行的结果是【17】。

#include

#include

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0||i%11==0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

for(k=0;k

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");}

(16)下列程序的功能是:

求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符1,则输出3,请填空。

#include

#include

#defineM81

intfun(char*ss,charc)

{inti=0;

for(;【18】;ss++)

if(*ss==c)i++;

returni;}

main()

{chara[M],ch;

clrscr();

printf("\nPleaseenterastring:

");gets(a);

printf("\nPleaseenterachar:

");ch=getchar();

printf("\nThenumberofthecharis:

%d\n",fun(a,ch));}

(17)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。

#include"stdio.h"

FILE*fp;

{charch;

if((fp=fopen(【19】))==NULL)exit(0);

while((ch=getchar())!

='@')fputc(ch,fp);

fclose(fp);}

(18)设有如下宏定义

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通过宏调用实现变量a,b内容交换,请填空。

floata=5,b=16,c;

MYSWAP(【20】,a,b);

试题二

一、选择题

(11)下列叙述中正确的是

  A)C语言编译时不检查语法

  B)C语言的子程序有过程和函数两种

  C)C语言的函数可以嵌套定义

  D)C语言的函数可以嵌套调用

(12)在C语言中,退格符是

  A)\n  B)\t  C)\f  D)\b

(13)以下叙述中正确的是

  A)构成C程序的基本单位是函数

  B)可以在一个函数中定义另一个函数

  C)main()函数必须放在其他函数之前

  D)所有被调用的函数一定要在调用之前进行定义

(14)在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。

在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。

  A)1  0  B)0 1  C)非0 非0  D)1 1

(15)在C语言中,运算对象必须是整型数的运算符是

  A)%  B)\  C)%和\  D)**

(16)字符型数据在机器中是用ASCII码表示的,字符“5”和“7”在机器中表示为

  A)10100011和01110111  B)01000101和01100011

  C)00110101和00110111

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

当前位置:首页 > 党团工作 > 其它

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

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