c语言基础知识复习题.doc

上传人:wj 文档编号:1024173 上传时间:2023-04-30 格式:DOC 页数:32 大小:111KB
下载 相关 举报
c语言基础知识复习题.doc_第1页
第1页 / 共32页
c语言基础知识复习题.doc_第2页
第2页 / 共32页
c语言基础知识复习题.doc_第3页
第3页 / 共32页
c语言基础知识复习题.doc_第4页
第4页 / 共32页
c语言基础知识复习题.doc_第5页
第5页 / 共32页
c语言基础知识复习题.doc_第6页
第6页 / 共32页
c语言基础知识复习题.doc_第7页
第7页 / 共32页
c语言基础知识复习题.doc_第8页
第8页 / 共32页
c语言基础知识复习题.doc_第9页
第9页 / 共32页
c语言基础知识复习题.doc_第10页
第10页 / 共32页
c语言基础知识复习题.doc_第11页
第11页 / 共32页
c语言基础知识复习题.doc_第12页
第12页 / 共32页
c语言基础知识复习题.doc_第13页
第13页 / 共32页
c语言基础知识复习题.doc_第14页
第14页 / 共32页
c语言基础知识复习题.doc_第15页
第15页 / 共32页
c语言基础知识复习题.doc_第16页
第16页 / 共32页
c语言基础知识复习题.doc_第17页
第17页 / 共32页
c语言基础知识复习题.doc_第18页
第18页 / 共32页
c语言基础知识复习题.doc_第19页
第19页 / 共32页
c语言基础知识复习题.doc_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言基础知识复习题.doc

《c语言基础知识复习题.doc》由会员分享,可在线阅读,更多相关《c语言基础知识复习题.doc(32页珍藏版)》请在冰点文库上搜索。

c语言基础知识复习题.doc

第一章C语言概述

一、选择题:

1、一个C程序的执行是从(A)。

A本程序的main函数开始,到main函数结束

B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C本程序的main函数开始,到本程序文件的最后一个函数结束

D本程序文件的第一个函数开始,到本程序main函数结束

 

2、在C语言中,每个语句必须以(D)结束。

A. 回车符   B. 冒号   C. 逗号   D. 分号

 

3、C语言规定:

在一个源程序中,main函数的位置(C)。

A.必须在最开始        B.必须在系统调用的库函数的后面

C.可以任意           D. 必须在最后

 

4、一个C语言程序是由(B)。

A.一个主程序和若干子程序组成  B.函数组成

C.若干过程组成            D.若干子程序组成

 

5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:

主函数说明部分和主函数体

B. 主函数可以调用任何非主函数的其他函数

C. 任何非主函数可以调用其他任何非主函数

D. 程序可以从任何非主函数开始执行

 

6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件   B. 生成目标文件

C. 输出运行结果       D. 自动保存源文件

 

 

 

二、填空题:

1、C语言只有32 个关键字和 9  种控制语句。

2、每个源程序有且只有一个 main  函数,系统总是从该函数开始执行C语言程序。

3、C语言程序的注释可以出现在程序中的任何地方,它总是以 \*   符号作为开始标记,以  */   符号作为结束标记。

4、C语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函   

数  printf   完成的。

5、系统默认的C语言源程序文件的扩展名是.c  ,经过编译后生成的目标文件的扩展名是.obj ,经过连接后生成的可执行文件的扩展名是.exe   。

6、C语言的标识符只能由字母、数字和 下划线  三种字符组成。

 

第三章数据类型、运算符和表达式

一、选择题:

1、以下选项中,不正确的C语言浮点型常量是(C)。

A.160.   B.0.12   C.2e4.2    D. 0.0

2、以下选项中,(D)是不正确的C语言字符型常量。

A.'a'     B.'\x41'    C.'\101'    D."a"

3、在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。

A. 原码    B. 反码   C.ASCII码   D.BCD码

4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C )。

x=(i=4,j=16,k=32)

A.4      B.16     C.32     D.52

5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。

A. 算术运算、赋值运算、关系运算   B. 算术运算、关系运算、赋值运算

C. 关系运算、赋值运算、算术运算   D. 关系运算、算术运算、赋值运算

6、若有代数式,则不正确的C语言表达式是(C)。

A.a/b/c*e*3  B.3*a*e/b/c   C.3*a*e/b*c   D.a*e/c/b*3

7、表达式!

x||a==b等效于( D)。

A.!

((x||a)==b)   B.!

(x||y)==b   C.!

(x||(a==b))   D.(!

x)||(a==b)

8、设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是(A)。

A.0,0   B.0,1   C.1,0   D.1,1

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

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

10、在以下一组运算符中,优先级最低的运算符是( D)。

A.*   B.!

=   C.+   D.= 

11、设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是( B)。

A.6   B.12   C.15   D. 表达式出错

12、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。

A.1   B.2   C.2.0   D.2.5

13、sizeof(double)的结果值是( A )。

A.8   B.4   C.2   D. 出错

14、设a=1,b=2,c=3,d=4,则表达式:

a

a:

c

a:

d的结果为(D)。

A.4   B.3   C.2   D.1

15、设a为整型变量,不能正确表达数学关系:

10

A.10

C.a>10&&a<15           D.!

(a<=10)&&!

(a>=15)

16、设f是实型变量,下列表达式中不是逗号表达式的是( D)。

A.f=3.2,1.0   B.f>0,f<10   C.f=2.0,f>0   D.f=(3.2,1.0)  

17、表达式18/4*sqrt(4.0)/8值的数据类型是(C )。

A.int   B.float   C.double   D.不确定

18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句

C2=’A’+’6’-‘3’;后c2中的值是(A)。

A.D   B.68   C.不确定的值   D.C

19、以下用户标识符中,合法的是(B)。

A.int     B.nit     C.123    D.a+b

20、C语言中,要求运算对象只能为整数的运算符是(A )。

A.%     B./      C.>      D.*

21、若有说明语句:

charc='\72';则变量c在内存占用的字节数是(A)。

A.1   B.2   C.3   D.4

22、字符串"ABC"在内存占用的字节数是( B)。

A.3   B.4   C.6   D.8

23、要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。

A.chara="3";  B.chara=’3’;   C.chara=%;   D.chara=*;

24、下列不正确的转义字符是(C)。

A.\\   B.\'   C.074   D.\0

 

二、填空题:

1、C语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。

2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。

3、设c='w',a=1,b=2,d=-5, 则表达式'x'+1>c,'y'!

=c+2,-a-5*b<=d+1,b==a=2的值分别为   1   、   0   、   1   、  1   。

4、设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为 2.5 。

5、判断变量a、b的值均不为0的逻辑表达式为a!

=0&&b!

=0  。

6、求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为  4,4,10,6 。

7、求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3  。

8、数学式a/(b*c)的C语言表达式  a/b/c  。

 

三、编程题:

1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。

2、编写一个程序,将大写字母A转换为小写字母a。

1.

main()

{floatx=1.5,y=2.3;printf(“areais%6.2f\n”,x*y);}

2.

main()

{charc=’A’;printf(“%d”,c+32);}

 

顺序结构答案

一、单项选择题

AADABCCBBD

 

二、程序改错题

1.正确的程序为

#include"stdio.h"

main()

{   char c;

  getchar(c);

  putchar('\007'); /*鸣笛*/

  putchar();

}

2.正确的程序为

main()

{inta,b,s,l;

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

 s=a*b;l=2*(a+b);

 printf("l=%d,s=%d\n",l,s);

 }

 

三、写出程序运行结果

1.68

2.x=4

y=11

 

四、编程题

1.main()

{inta,b,c,sum;

floatave;

scanf(“%d%d%d”,&a,&b,&c);

sum=a+b+c;  ave=sum/3.0;

printf(“sum=%d,ave=%.2f\n”,sum,ave);

}

 

五、选做题

1.voidmain()

 { floata,b,temp;

  printf("inputaandb:

");

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

  temp=a;a=b;b=temp;

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

 }

选择结构答案

一、单项选择题

1.B 2.A 3.D 4.C 5.D 6.B 7.C

 

二、填空题

1.   5 5 4

  5 5 4

  3 3 4

2.   4 0

3.   VeryGood  

   Good

   VeryGood

   Fail

   Pass

   Pass

 

三、阅读程序,写出运行结果

1.  10,4,3;

 -1

 3

 6

 1

四、程序设计题

1.main()

{inta,b,x,y;

 scanf(“%d%d”,&a,&b);

 x=a*a+b*b;

 if(x>100)

 {y=x/100;printf(“%d”,y);}

 elseprintf(“%d”,a+b);

}

 

2.if结构

main()

{floatt;charc;

printf(“inputscore,maxas100:

\n”);

scanf(“%f”,&t);

if(t>=90)ch=’A’;

elseif(t>=80)ch=’B’;

elseif(t>=70)ch=’C’;

elseif(t>=60)ch=’D’;

elsech=’E’;

printf(“Grade=%d\n”,ch);

}

switch结构

main()

{floatt;charc;

printf(“inputscore,maxas100:

\n”);

scanf(“%f”,&t);

switch(t/10)

{case10:

case9:

ch=’A’;break;

case8:

ch=’B’;break;

case7:

ch=’C’;break;

case6:

ch=’D’;break;

case5:

ch=’E’;

}

printf(“Grade=%d\n”,ch);

}

 

五、选做题

1.main()

{inta,b,c,t;

scanf(“%d%d%d”,&a,&b,&c);

if(a

if(a

if(b

printf(“%d,%d,%d\n”,a,b,c);

}

 

2.switch((s>0)&&(s<=10))

 {case1:

switch((s>=3)&&(s<=6)) 

{case1:

x=2;break;

         case0:

switch(s>1)||(s>8)) 

{case1:

x=3;break;

        case0:

x=1;break;

       }

}break;

case0:

x=0;break;

}

 

循环结构答案

一、选择题

1.B 2.A 3.A 4.C 5.A 6.B 7.A 8.C9.D 10.D

 

二、填空题

1.x1  x1/2-2

2.ch=getchar() ch>=’A’&&ch<=’Z’

3.s=s+t*i  t=-t

 

三、阅读下列程序,写出程序运行的输出结果

1.852

2. 8921

3. 5

4. SUM=2468

 

四、程序改错

1.main()

{inti=200,n=0;/*n用来记录每行已打印数的个数*/

 while(i<=300)

 {if(i%7==0)

  {//break;

   printf("%5d",i);   n=n+1;

    if(n==5)  /*满5个换行*/

     {printf("\n"); n=0; }

 }

 i++; }}

 

2).main()

{inti,s=0,t=1;

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

  {   t=t*i;   s=s+t;  }

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

}

 

五、程序设计题

1.main()

{intx,g,s,b;

for(x=100;x<1000;x++)

{b=x/100;s=x%100/10;g=x%10;

if((g*g*g+s*s*s+b*b*b)==x)

printf(“%d\n”,x);}

}

 

2.main()

{inti,s=0,f=1;

for(i=2;i<80;i++)

{s=s+f*(i-1)/i;f=-f;}

printf(s=%f\n”,s);

}

 

六、选做题

1.main()

{floats=0,m=2.0,n=1.0,p;

 inti;

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

{s=s+m/n;p=m;m=m+n;n=p;}

printf(s=%f\n”,s);

}

 

2.#include

 main()

 {inti,j,k,s=1;

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

 for(j=1;j<=50;j++)

  {k=100-i*5-j*2;

   if(k>=0)

     {printf(“%2d%2d%2d”,i,j,k);

      s=s+1;

       if(s%5==0) printf(“\n”);

      }

  }

}

 

第7章 数组习题

A卷

1.单项选择题

(1)inta[4]={5,3,8,9};其中a[3]的值为(   )。

D

A.5      B.3      C.8      D.9

(2)以下4个字符串函数中,(   )所在的头文件与其他3个不同。

A

A.gets    B.strcpy    C.strlen    D.strcmp

(3)以下4个数组定义中,(   )是错误的。

D

A.inta[7];     B.#defineN5 longb[N];   C.charc[5];   D. intn,d[n];

(4)对字符数组进行初始化,(   )形式是错误。

B

A.charc1[]={'1','2','3'};   B.charc2[]=123;   C.charc3[]={'1','2','3','\0'};   D.charc4[]="123";

(5)在数组中,数组名表示(   )。

A

A.数组第1个元素的首地址    B.数组第2个元素的首地址

C.数组所有元素的首地址       D.数组最后1个元素的首地址

(6)若有以下数组说明,则数值最小的和最大的元素下标分别是(   )。

B

inta[12]={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

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};  charc=’a’,d,g; 

A.a[g-c]   B.a[4]   C.a['d'-'c']   D.a['d'-c]  

(8)设有定义:

chars[12]="string"; 则printf("%d\n",strlen(s)); 的输出是(   )。

A

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

(9)设有定义:

chars[12]="string"; 则printf("%d\n",sizeof(s));的输出是(   )。

D

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

(10)合法的数组定义是(   )。

A

A.chara[]="string";  B.inta[5]={0,1,2,3,4,5};   C.chara="string";   D.chara[]={0,1,2,3,4,5}

(11)合法的数组定义是(   )。

D

A.inta[3][]={0,1,2,3,4,5};   B.inta[][3]={0,1,2,3,4};

C.inta[2][3]={0,1,2,3,4,5,6};  D.inta[2][3]={0,1,2,3,4,5,};

(12)下列语句中,正确的是(   )。

D

A.chara[3][]={'abc','1'};  B.chara[][3]={'abc','1'};

C.chara[3][]={'a',"1"};   D.chara[][3]={"a","1"};

(13)下列定义的字符数组中,输出printf("%s\n",str[2]);的输出是(   )。

C

staticstr[3][20]={"basic","foxpro", "windows"}; 

A.basic   B.foxpro   C.windows  D. 输出语句出错

(14)下列各语句定义了数组,其中哪一个是不正确的(   )。

C

A.chara[3][10]={"China","American","Asia"};  B.intx[2][2]={1,2,3,4};

C.floatx[2][]={1,2,4,6,8,10};        D.intm[][3]={1,2,3,4,5,6};

(15) 数组定义为inta[3][2]={1,2,3,4,5,6},值为6的数组元素是(   )。

B

A.a[3][2]      B.a[2][1]  C.a[1][2]      D.a[2][3]

(16)下面的程序中哪一行有错误(   )。

D

#include

main()

{

 floatarray[5]={0.0};      //第A行

 inti;

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

  scanf("%f",&array[i]);

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

  array[0]=array[0]+array[i];//第B行

 printf("%f\n",array[0]);   //第C行

}

  A.第A行  B.第B行  C.第C行  D.没有

(17)下面哪一项是不正确的字符串赋值或赋初值的方式(   )。

C

  A.char*str;str="string";

  B.charstr[7]={'s','t','r','i','n','g'};

  C.charstr1[10];str1="string";

  D.charstr1[]="string",str2[]="12345678";

(18)若有以下说明和语句,则输出结果是哪一项(   )。

C

  (strlen(s)为求字符串s的长度的函数)

  chars[12]="abook!

";

  printf("%d",strlen(s));

  A.12  B.8  C.7  D.11

(19)若有以下说明和语句,则输出结果是(   )。

B

 (strlen(s)为求字符串s的长度的函数)

  charsp[]="\t\v\\\0will\n";   

  printf("%d",strlen(sp));

  A.14   B.3   C.9   D.字符串中有非法字符

(20)若有以下说明和语句,则输出结果是(   )。

C

  charstr[]="\"c:

\\abc.dat\"";

  printf("%s",str);

A.字符串中有非法字符   B.\"c:

\\abc.dat\"    C."c:

\abc.dat"    D."c:

\\abc.dat"

 

2.填空题

(1)C语言中,数组的各元素必须具有相同的      ,元素的

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2