C语言练习题带答案.docx

上传人:b****4 文档编号:4889166 上传时间:2022-12-11 格式:DOCX 页数:50 大小:53.92KB
下载 相关 举报
C语言练习题带答案.docx_第1页
第1页 / 共50页
C语言练习题带答案.docx_第2页
第2页 / 共50页
C语言练习题带答案.docx_第3页
第3页 / 共50页
C语言练习题带答案.docx_第4页
第4页 / 共50页
C语言练习题带答案.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

C语言练习题带答案.docx

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

C语言练习题带答案.docx

C语言练习题带答案

一、单项选择题

1、( A )是构成C语言程序的基本单位。

A、函数   B、过程    C、子程序   D、子例程

2、C语言程序从   C   开始执行、

A)程序中第一条可执行语句    B)程序中第一个函数

   C) 程序中的main函数          D) 包罗文件中的第一个函数

3、以下讲法中正确的是( C )、

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

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

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

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

4、下列关于C语言的讲法错误的是(B)  、

A)C程序的工作过程是编辑、编译、连接、运行 

B)C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环 

D)C程序从main函数开始执行

5、下列正确的标识符是(C)、

A、-a1  B、a[i]C、a2_i D、intt

6、下列C语言用户标识符中合法的是(B )。

  A)3ax B)xC)case D)—e2 E)union

7、下列四组选项中,正确的C语言标识符是( C)、

A) %x    B)a+b   C) a123    D)123

8、下列四组字符串中都能够用作C语言程序中的标识符的是(A)。

 A、print _3d db8aBc    B、I\amone_halfstart$it3pai

C、str_1 Cpp powwhileD、PxqMy—>book line# His、age 

9、C语言中的简单数据类型包括(D)、

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

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

10、在C语言程序中,表达式5%2的结果是C 、

   A)2、5  B)2  C)1     D)3

11、假如inta=3,b=4;则条件表达式"a〈b?

a:

b”的值是__A__。

A)3    B)4     C)0   D)1

12、若intx=2,y=3,z=4则表达式x〈z?

y:

z的结果是(B  )、

 A)4  B)3   C)2 D)0 E)1

13、C语言中,关系表达式与逻辑表达式的值是(B)、

ﻩA)0   B)0或1   C)1 D)‘T’或’F’

14、下面(  D )表达式的值为4、

   A) 11/3          B)11、0/3

   C) (float)11/3   D) (int)(11、0/3+0、5)

15、设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0、5的是(B )

A、b=1、0/a    B、b=(float)(1/a) 

 C、b=1/(float)a    D、b=1/(a*1、0)

16、 若“intn; floatf=13、8;”,则执行“n=(int)f%3”后,n的值是(A)

A、1     B、4      C、4、333333  D、4、6

17、 以下对一维数组a的正确讲明是:

 D  

A)chara(10);ﻩﻩﻩB) inta[];

C)intk=5,a[k];   D)char a[3]={‘a’,'b','c’};

18、以下能对一维数组a进行初始化的语句是:

 (    C )

 A、 inta[5]=(0,1,2,3,4,) B、int a(5)={} 

C、 int a[3]={0,1,2} D、int a{5}={10*1}

19、在C语言中对一维整型数组的正确定义为  D、

    A)inta(10);   B)intn=10,a[n];

C)intn;a[n];    D)#defineN 10

        int a[N];

20、已知:

inta[10];则对a数组元素的正确引用是( D )、

 A、a[10]  B、a[3、5] C、a(5)  D、a[0]

21、若有以下数组讲明,则i=10;a[a[i]]元素数值是( B)。

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

A、10  B、9    C、6  D、5

22、若有讲明:

inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:

(B )

A、 2  B、  3  C、4  D、无确定值

5 7   D)369

23、对二维数组的正确定义是(C)

 A、inta[][]={1,2,3,4,5,6}; B、inta[2][]={1,2,3,4,5,6};

C、int a[][3]={1,2,3,4,5,6};  D、inta[2,3]={1,2,3,4,5,6};

24、已知inta[3][4];则对数组元素引用正确的是__C___

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

(2)

(1)

25、C语言中函数返回值的类型是由 A 决定的、

  A)函数定义时指定的类型    B)return语句中的表达式类型

  C)调用该函数时的实参的数据类型D)形参的数据类型

26、在C语言中,函数的数据类型是指( A)

A 函数返回值的数据类型   B、函数形参的数据类型

C调用该函数时的实参的数据类型  D、任意指定的数据类型

27、 在函数调用时,以下讲法正确的是(B)

 A、函数调用后必须带回返回值

 B、实际参数与形式参数能够同名

C、函数间的数据传递不能够使用全局变量

D、主调函数与被调函数总是在同一个文件里

28、 在C语言中,表示静态存储类不的关键字是:

( C)

A)auto B) registerﻩC) static D)extern

29、未指定存储类不的变量,其隐含的存储类不为(A )、

   A)auto B)staticC)externD)register 

30、 若有以下讲明语句:

 struct student

  { int num;

   charname[ ];

     floatscore;

   }stu;

  则下面的叙述不正确的是:

( D )

A、struct是结构体类型的关键字

B、structstudent是用户定义的结构体类型

C、num, score都是结构体成员名   

D、 stu是用户定义的结构体类型名

31、若有以下讲明语句:

   struct date

    {intyear;

   intmonth;

     intday;

     }brithday;

 则下面的叙述不正确的是__C___、

A) struct是声明结构体类型时用的关键字  

B) structdate 是用户定义的结构体类型名

C)brithday是用户定义的结构体类型名

D)year,day都是结构体成员名

32、以下对结构变量stul中成员age的非法引用是 B  

struct student

{intage;

intnum;

}stu1,*p;

p=&stu1;

A) stu1、age B)student、ageC)p—>ageD)(*p)、age

33、设有如下定义:

strucksk

{ inta;

float b;

}data;

int*p;

若要使P指向data中的a域,正确的赋值语句是C  

A)p=&a;B)p=data、a;ﻩC)p=&data、a;ﻩD)*p=data、a;

34、设有以下讲明语句:

 typedefstruct stu

       {  int a;

      floatb;

    } stutype;

 则下面叙述中错误的是(D )、

  A、struct是结构类型的关键字  

B、structstu是用户定义的结构类型

  C、a与b都是结构成员名

D、stutype是用户定义的结构体变量名

35、 语句int*p;讲明了 C  、

A)p是指向一维数组的指针 

B)p是指向函数的指针,该函数返回一int型数据

C)p是指向int型数据的指针 

D)p是函数名,该函数返回一指向int型数据的指针

36、下列不正确的定义是( A )、

A.int*p=&i,i;        B、int*p,i;

C、inti,*p=&i;   D、int i,*p;

37、 若有讲明:

intn=2,*p=&n,*q=p,则以下非法的赋值语句是:

(D )

A)p=q   B)*p=*q  C)n=*q  D)p=n

38、有语句:

inta[10],;则B 是对指针变量p的正确定义与初始化、

A)intp=*a;  B)int *p=a; C)int p=&a; D)int*p=&a;

39、若有讲明语句“int a[5],*p=a;”,则对数组元素的正确引用是(C )。

A、a[p]    B、p[a]   C、*(p+2)  D、p+2

40、有如下程序

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

则数值为9的表达式是B 

A)*P+9     B)*(P+8)     C) *P+=9     D)P+8

41、在C语言中,以D 作为字符串结束标志

A)’\n’  B)' ' C) '0' D)’\0' 

42、下列数据中属于“字符串常量”的是(A)。

A、“a”     B、{ABC}   C、‘abc\0'  D、‘a’

43、已知charx[]="hello”, y[]={'h','e’,'a’,'b’,’e’};,则关于两个数组长度的正确描述是B、

A)相同   B)x大于y  C)x小于y  D)以上答案都不对

44、 下面各函数中能实现打开文件功能的是 A 

A)fopen  B)fgetcﻩ   C)fputcﻩﻩD)fclose

45、下列语句中,把变量fp讲明为一个文件型指针的是(A)。

A) FILE*fp;    B) FILEfp;

C)file  *fp;   D)filefp;

46、以读写方式打开一个已有的文本文件file1,同时FILE*fp,下面fopen函数正确的调用方式是(B)。

A、fp=fopen(“file1”,“r”)

B、fp=fopen(“file1",“r+”)

C、fp=fopen(“file1”,“rb")

D、fp=fopen(“file1”,“w”)

二、读程序

基本输入输出及流程控制

1、

#include 〈stdio、h〉

main()

{ int a=1,b=3,c=5;

if (c==a+b)

 printf(”yes\n");

else

printf(”no\n”);

运行结果为:

no

2、 

#include 〈stdio、h〉

main()

{inta=12,b=—34,c=56,min=0;

min=a;

if(min〉b)

min=b;

if(min>c) 

min=c;

printf(”min=%d”,min);

运行结果为:

min=-34

3、

#include〈stdio、h〉

main()

{intx=2,y= -1,z=5;

 if(x<y)

if(y〈0)

z=0;

else

 z=z+1;

printf(“%d\n”,z);

运行结果为:

5

4、

#include

main()

{ floata,b,c,t;

a=3;

b=7;

c=1;

if(a>b)

 {t=a;a=b;b=t;}

if(a〉c)

 {t=a;a=c;c=t;}

if(b>c)

   {t=b;b=c;c=t;}

printf("%5、2f,%5、2f,%5、2f”,a,b,c);

}

 运行结果为:

1、00, 2、00, 7、00

5、

#include  

main( )

{floatc=3、0,d=4、0;

if( c>d) c=5、0;

else

if(c==d) c=6、0;

else c=7、0;

 printf( “%、1f\n”,c);

}

运行结果为:

7、0

6、

#include〈stdio、h〉

main()

{ﻩint m;

ﻩscanf(”%d", &m);ﻩ

ﻩif(m>=0)ﻩﻩﻩﻩ

ﻩ {ﻩif (m%2 == 0)ﻩprintf("%d isapositiveeven\n”,m);

ﻩelseﻩﻩprintf("%disa positiveodd\n",m);ﻩ}

ﻩelse 

 {ﻩif(m % 2== 0) printf(”%dis anegativeeven\n”, m);ﻩ

ﻩelseﻩ  printf(”%d isa negativeodd\n”,m);ﻩ}

若键入-9,则运行结果为:

 -9 isanegative odd

7、 

#include〈stdio、h>

main()

{ intnum=0;

while(num〈=2){ num++;printf(”%d\n",num);}

运行结果为:

1

2

3

8、

#include〈stdio、h>

main()

{int sum=10,n=1;

while(n<3){sum=sum-n;n++;} 

printf(“%d,%d",n,sum);

运行结果为:

3,7

9、

#include<stdio、h〉

main()

{ intnum,c;

 scanf(”%d",&num);

do{c=num%10;printf(”%d”,c);}while((num/=10)>0);

printf("\n”);

从键盘输入23,则运行结果为:

32

10

#include〈stdio、h>

main()

{ints=0,a=5,n;

scanf(”%d",&n);

do{s+=1;a=a-2;}while(a!

=n);

printf(”%d,%d\n",s,a);

}

若输入的值1,运行结果为:

2,1 

11、

#include"stdio、h”  

main()        

{char c;          

c=getchar();     

while(c!

=’?

')   {putchar(c);c=getchar();}             

假如从键盘输入abcde?

fgh(回车)

运行结果为:

abcde

12、

#include〈stdio、h>

main()

{charc;

 while((c=getchar())!

='$')

  { if(‘A'〈=c&&c〈=‘Z’) putchar(c);

   elseif(‘a’〈=c&&c<=‘z’) putchar(c—32); }

}

当输入为ab*AB%cd#CD$时,运行结果为:

ABABCDCD

13、 

#include〈stdio、h〉

main()

{ int x, y=0;

for(x=1;x<=10;x++)

{ if(y>=10)

 break; 

y=y+x;

} 

printf(“%d %d”,y,x);

运行结果为:

10 5

14、

#include

main()

 {charch;

 ch=getchar();

switch(ch)

    {case‘A’:

 printf(“%c”,’A’);

   case ‘B’ :

printf(“%c",'B’); break;

   default:

printf(“%s\n”,"other”);

 }}

当从键盘输入字母A时,运行结果为:

AB

15、

#include <stdio、h〉

main()

{ inta=1,b=0;

 scanf(“%d",&a);

switch(a)

{case1:

b=1;break;

case2:

 b=2;break;

default :

b=10;}

printf(”%d",b);

若键盘输入5,运行结果为:

10

16、

#include 〈stdio、h>

 main()_

{chargrade=’C’;

switch(grade)

   { case‘A':

printf(“90—100\n”);

   case ‘B’:

printf(“80-90\n”);

case‘C':

printf(“70-80\n");

case‘D’:

printf(“60—70\n”);break;

case‘E':

printf(“〈60\n”);

default :

printf(“error!

\n");

    }  

 }

运行结果为:

70-80

60-70

17、

#include〈stdio、h>

main()

{inty=9;

for(;y〉0;y- —)

if(y%3==0)

{printf(%d",- —y);

continue;

}

}

运行结果为:

852

18、

#include

main()

{int i,sum=0; i=1;

do{sum=sum+i;i++; }while(i<=10);

printf(“%d",sum);

运行结果为:

 55

19、

#include<stdio、h>

#defineN 4

main()

{ int i;

 intx1=1,x2=2;

printf(”\n”);

for(i=1;i〈=N;i++)

{printf(”%4d%4d",x1,x2);

if(i%2==0)

printf(”\n”);

x1=x1+x2;

x2=x2+x1;

运行结果为:

12   35

8 13  21  34

20

#include〈stdio、h>

main()

{ intx,y;

  for(x=30,y=0;x〉=10,y〈10;x——,y++)

    x/=2,y+=2;

   printf(“x=%d,y=%d\n",x,y);

}

运行结果为:

x=0,y=12

21、 

#include〈stdio、h>

#defineN 4

main( )

{inti,j;

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

 { for(j=1;j

printf("");

  printf("*”);

 printf("\n");

}}

运行结果为:

*

*

*

 *

数组

1、

#include〈stdio、h〉

main()

{inti,a[10];

for(i=9;i>=0;i-—)

a[i]=10-i;

printf(“%d%d%d”,a[2],a[5],a[8]);

}

运行结果为:

852

2、

#include

main()

{inti,a[6];

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

  a[i]=i;

for(i=5;i>=0 ;i-—)

printf("%3d",a[i]);

}

运行结果为:

5 4 3  21  0

3、

#include〈stdio、h〉

main()

{ int i,k,a[10],p[3];

k=5;

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

a[i]=i;

for(i=0;i〈3;i++)

p[i]=a[i*(i+1)];

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

k+=p[i]*2;

printf(”%d\n",k);

}

运行结果为:

21

4、

#include〈stdio、h〉

int m[3][3]={{1},{2},{3}};

int  n[3][3]={1,2 ,3};

main()

{ printf(“%d,”, m[1][0]+n[0][0]);

  printf(“%d\n”,m[0][1]+n[1][0]);

运行结果为:

3,0

5、

#include〈stdio、h>

main()

{int i;

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

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

printf("%d ",x[i][3-i]); 

} 

运行结果为:

68  

6、

#include〈stdio、h〉

main()

{intn[3][3], i,j;

for(i=0;i〈3;i++ )

{for(j=0;j〈3;j++ )

{n[i][j]=i+j;

printf(“%d ",n[i][j]);

printf(“\n");

运行结果为:

01  2

12 3

234

7、

#include 〈stdio、h>

main()

chardiamond[][5]={{‘_','_’,’*'},{‘_‘,'*’,’_’,’*'},

{‘*’,'_’,’_‘,’_‘,’*’},{‘_’,'*’,'_’,’*’},{‘_','_',’*’}};

inti,j;

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

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

当前位置:首页 > 求职职场 > 简历

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

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