C语言练习题(整理)

C语言练习题(整理)
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.int t

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

A)3ax B)x C)case D)-e2 E)union

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

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

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

A、print _3d db8 aBc

B、I\am one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->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.如果int a=3,b=4;则条件表达式"a

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

12.若int x=2,y=3,z=4 则表达式x

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. 若?int n; float f=13.8;?,则执行?n=(int)f%3?后,n的值是(A)

A.1

B.4

C.4.333333

D.4.6

17. 以下对一维数组a的正确说明是:D

A) char a(10);B) int a[];

C)int k=5,a[k];D)char a[3]={…a?,?b?,?c?};

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

A. int a[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)int a(10); B)int n=10,a[n];

C)int n;a[n]; D)#define N 10

int a[N];

20、已知:int a[10]; 则对a数组元素的正确引用是( D )。

A、a[10]

B、a[3.5]

C、a(5)

D、a[0]

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

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

A.10

B.9

C.6

D.5

22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B)

A. 2

B. 3

C. 4

D.无确定值

5 7 D) 3

6 9

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

A.int a[ ] [ ]={1,2,3,4,5,6};

B.int a[2] [ ]={1,2,3,4,5,6};

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

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

24.已知int a[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)static C)extern D)register

30. 若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

则下面的叙述不正确的是: ( D )

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

B. struct student 是用户定义的结构体类型

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

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

31.若有以下说明语句:

struct date

{ int year;

int month;

int day;

}brithday;

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

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

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

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

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

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

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A) stu1.age B) student.age C) p->age D) (*p).age

33.设有如下定义:

struck sk

{ int a;

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.设有以下说明语句:

typedef struct stu

{ int a;

float b;

} stutype;

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

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

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

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.int i,*p=&i; D.int i,*p;

37. 若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: (D)

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

38.有语句:int a[10],;则B是对指针变量p的正确定义和初始化。

A)int p=*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. 有如下程序

int a[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.已知char x[]="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) FILE fp;

C) file *fp; D) file fp;

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

main()

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

if (c==a+b)

printf("yes\n");

else

printf("no\n");

}

运行结果为:no

#include

main()

{ int a=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

main()

{ int x=2,y= -1,z=5;

if(x

if(y<0)

z=0;

else

z=z+1;

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

}

运行结果为:5

4.

#include

main()

{ float a,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

#include < stdio .h >

main ( )

{ float c=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

main()

{ int m;

scanf("%d", &m);

if (m >= 0)

{ if (m%2 == 0) printf("%d is a positive even\n", m);

else printf("%d is a positive odd\n", m); } else

{ if (m % 2 == 0) printf("%d is a negative even\n", m);

else printf("%d is a negative odd\n", m); }

}

若键入-9,则运行结果为: -9 is a negative odd

7.

#include

main()

{ int num=0;

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

}

运行结果为:

1

2

3

8.

#include

main( )

{ int sum=10,n=1;

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

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

运行结果为:3,7

9.

#include

main()

{ int num,c;

scanf("%d",&num);

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

}

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

10

#include

main()

{ int s=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

main()

{ char c;

while((c=getchar())!=?$?)

{ if(…A?<=c&&c<=‘Z?)putchar(c);

else if(‘a’<=c&&c<=‘z’) putchar(c-32); }

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

#include

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( )

{ char ch;

ch=getchar( );

switch(ch)

{ case …A? : printf(“%c”,?A?);

case …B? : printf(“%c”,?B?); break;

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

} }

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

15.

#include

main( )

{ int a=1,b=0;

scanf(“%d”,&a);

switch(a)

{ case 1: b=1;break;

case 2: b=2;break;

default : b=10;}

printf("%d ", b);

}

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

16.

#include

main()_

{ char grade=?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

main()

{ int y=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

#define N 4

main()

{ int i;

int x1=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;

}

}

运行结果为:

1 2 3 5

8 13 21 34

20

#include

main( )

{ int x, 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

#define N 4

main( )

{ int i,j;

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

{ for(j=1;j

printf(" ");

printf("*");

printf("\n");

}}

运行结果为:

*

*

*

*

数组

1.

#include

main()

{ int i, 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()

{ int i,a[6];

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

a[i]=i;

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

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

}

运行结果为:

5 4 3 2 1 0

3.

#include

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

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

main()

{ int i;

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

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

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

}

运行结果为:

6 8

6.

#include

main( )

{ int n[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”);

}

}

运行结果为:

0 1 2

1 2 3

2 3 4

7.

#include

main()

{

char diamond[][5]={{…_?,?_?,?*?},{…_…,?*?,?_?,?*?}, {…*?,?_?,?_…,?_…,?*?},{…_?,?*?,?_?,?*?},{…_?,?_?,?*?}};

int i,j;

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

{

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

printf(“%c”,diamond[i][j]);

printf(“\n”);

}

}注:?_?代表一个空格。

运行结果为:

*

* *

* *

* *

*

8.

#include

main( )

{ int i, f[10];

f[0]=f[1]=1;

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

f[i]=f[i-2]+f[i-1];

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

{ if(i%4==0)

printf(“\n”);

printf(“%d ”,f[i]);

}

}

运行结果为:

1 1

2 3

5 8 13 21

34 55

9.

#include “stdio.h”

func(int b[ ])

{ int j;

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

b[j]=j;

}

main( )

{ int a[4], i;

func(a);

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

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

}

运行结果为:

0 1 2 3

10.

#include

m ain()

{float fun(float x[]);

float ave,a[3]={4.5,2,4};

ave=fun(a);

printf(“ave=%7.2f”,ave);

}

float fun(float x[])

{int j;

float aver=1;

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

aver=x[j]*aver;

return(aver);

}

运行结果为:

ave= 36.00

11.

#include

main()

{int a[2][3]={{1,2,3},{4,5,6}};

int b[3][2],i,j;

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

{for(j=0;j<=2;j++)

b[j][i]=a[i][j];

}

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

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

}

}

运行结果为:

1 4

2 5

3 6 12.

#include

f(int b[],int n)

{int i,r;

r=1;

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

r=r*b[i];

return (r);

}

main()

{int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3);

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

}

运行结果为:

24

13.

#include"stdio.h"

main()

{int j,k;

static int x[4][4],y[4][4];

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

for(k=j;k<4;k++)

x[j][k]=j+k;

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

for(k=j;k<4;k++)

y[k][j]=x[j][k];

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

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

printf("%d,",y[j][k]);

}

运行结果为:

0,0,0,0,1,2,0,0,2,3,4,0,3,4,5,6 函数

1.

#include

int Sub(int a, int b)

{return (a- b);}

main()

{int x, y, result = 0;

scanf("%d,%d", &x,&y ); result = Sub(x,y ) ;

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

当从键盘输入:6,3运行结果为:result =3

2.

#include

int min( int x, int y )

{ int m;

if ( x> y ) m = x;

else m = y;

return(m);

main() {

int a=3,b=5,abmin ;

abmin = min(a,b);

printf(“min is %d”,abmin);}

运行结果为:

min is 5

3.

#include

func(int x) {

x=10;

printf(“%d, ”,x);

}

main( )

{ int x=20;

func(x);

printf(“%d”, x);

}

运行结果为:

10, 20

4.

#include

int m=4;

int func(int x,int y)

{ int m=1;

return(x*y-m);

}

main()

{int a=2,b=3;

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

printf("%d\n",func(a,b)/m);

}

运行结果为:

4

5.

#include

int fun(int a, int b)

{ if(a>b) return(a);

else return(b);

}

main()

{ int x=15, y=8, r;

r= fun(x,y);

printf("r=%d\n", r);

}

运行结果为:r=15

6.

#include

int fac(int n)

{ int f=1,i;

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

f=f * i;

return(f);

}

main()

{ int j,s;

scanf(“%d”,&j);

s=fac(j);

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

}

如果从键盘输入3,运行结果为:3!=6 7.

#include

unsigned fun6(unsigned num)

{ unsigned k=1;

do

{ k*=num%10;

num/=10;

}while(num);

return k;

}

main()

{ unsigned n=26;

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

}

运行结果为:12

8.

#include

int max(int x, int y);

main()

{ int a,b,c

a=7;b=8;

c=max(a,b);

printf("Max is %d",c);

}

max(int x, int y)

{ int z;

z=x>y? x : y;

return(z) ;

}

运行结果为:

Max is 8

指针

1.

# include < stdio .h >

main ( )

{ int x[ ] = {10, 20, 30, 40, 50 }; int *p ;

p=x;

printf ( “%d”, *(p+2 ) );

}

运行结果为:

30

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

[新]C语言期末复习,经典练习题+知识点总结+模拟考题。三位一体,完胜c语言!!!!{考期必备神器}

C语言期末复习(平时练习答案)[特别适用于千千万北航学子] 考试重点:(编程题)排序,选择与冒泡排序,,各种进制转换。。。。] 第二次大作业— 前驱、后继字符 1. 【问题描述】从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。【输入形式】从键盘输入一个字符【输出形式】按两行输出:第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开;第二行按照从小到大的顺序输出三个字符对应的ASCII 值,并以一个空格隔开。【输入样例】 b 【输出样例】 a b c 97 98 99 【样例说明】输入字符b,b的前驱字符是a,后继字符是c,第一行按照从小到大的顺序输出a b c;第二行输出对应的ASCII值97 98 99 【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:c0103.c。 //*从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。*// #include int main() { char c=" "; printf("Input a number:"); scanf("%c",&c); //*从键盘输入一个字符*// printf(" %c %c %c\n",c-1,c,c+1);//*第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开*// printf(" %d %d %d", c-1,c,c+1);//*第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。*// return 0; } 当前编程题:第二次大作业---数值变换 2. 【问题描述】编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。【输入形式】从键盘输入三位的正整数。【输出形式】输出交换后的正整数值。【输入样例】356 【输出样例】653 【样例说明】从键盘输入的正整数值为356,将该数的个位与百位互换,所得结果为653.如果输入的正整数为300,则输出为3。【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为:c0102.c。 //*编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。*// #include void main() { int a,d,e,f,sum; //*定义变量*// printf("请输入一个三位正整数,\n"); scanf("%d",&a); //*输入一个数*// if(a>0) //*对输入的值的正负做判断*// { d=a/100; e=(a-d*100)/10; f=a%10; sum=100*f+10*e+d; printf("%d\n",sum); //*输出交换后的正整数值。 *//

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.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->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.如果int a=3,b=4;则条件表达式"a

C语言基础练习题(含答案)

C语言基础练习题(含答案)

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D.-_ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed

B .一组机器语言指令 C .将C 源程序编译成目标程序 D .由制造厂家提供的一套应用软件 14.以下选项中,合法的用户标识符是( )。 A .long B ._2abc C .3dmax D .A.dat 15.以下选项中,合法的实型常数是( )。 A .5E2.0 B .E-3 C .2E0 D .1.3E 16.已知大写字母A 的ASCII 码值是65, 小写字母a 的ASCII 码是97,则用八进制表示的字符常量’\101’是( )。 A .字符A B .字符a C .字符c D .非法的 常量 17.以下选项中, 合法转义字符的选项是( )。 A .’\\’ B .’\018’ C .’xab ’ D .’\abc ’ 18.以下选项中,正确的字符常量是( )。 A .”F ” B .’\\’’ C .’W ’ D .’’ 19.以下选项中可作为C 语言合法整数的是 A .10110 B B .0386 C .0Xffa D .x2a2 20.下列变量定义中合法的是 A .short _a=1-.le-1; B .double b=1+5e2.5; C .long do=0xfdaL; D .float 2_and=1-e-3; 21.与数学式子1 29 x x n 对应的C 语言表达式是( )。 A .9*x^n/(2*x-1) B .9*x**n/(2*x-1) C .9*pow(x,n)*(1/(2*x-1)) D .9*pow(n,x)/(2*x-1) 22.若有代数式cd ab 3,则不正确的C 语言表达式是( )。

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言习题总结

1.定义3个整型变量x,y,z和一个实型变量averge,计算并输出3个整数的平均值averge,其中x=y=1,z=0。 #include int main() { int x,y,z; float average=0; x=1,y=1,z=0; average=1.0*(x+y+z)/3; printf("%f\n",average); return 0 ; } 2.针对上一题要求,采用从键盘用scanf()函数输入x,y,z的值。要求输出结果的形式为averge=…。 #include int main() { float x,y,z; float average=0; scanf("%f,%f,%f",&x,&y,&z); average=1.0*(x+y+z)/3; printf("averge=%f\n",average); return 0 ; } 3.输入3个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b 原来的值给c,把c中原来的值给a。 #include int main() { int a,b,c; int m,n; scanf("%d,%d,%d",&a,&b,&c); m=b; n=c; b=a; c=m; a=n; printf("a=%d,b=%d,c=%d\n",a,b,c); return 0; } 4.计算某个数x的平方y,并以算术公式的形式输出x和y的值

#include #include int main() { float x,y; scanf("%f",&x); y=pow(x,2); printf("x=%f,y=%f",x,y); return 0; } 5.把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E 输入输出示例:Input Score: 86 86的等级为B。 #include int main() { float score; printf("Score :"); scanf("%f",&score); if(score>=90) printf("A"); else if(score>=80) printf("B"); else if(score>=70) printf("C"); else if(score>=60) printf("D"); else printf("E"); return 0; } 6.输入2005年的任一个月,输出这个月的天数,要求使用switch语句。 输入输出示例: Input month of 2005: 10 2005年10月有31天。 #include int main() { int month;

C语言思考题

1、机器语言:机器语言及其指令是计算机能够直接识别的执行的一组二进制代码。一条机器指令通常由操作码和操作数两部分构成。 2、汇编指令:是机器语言的符号化表示MOV 3、汇编语言:由汇编指令、汇编伪指令及汇编语言的语法规则组成。 4、汇编语言源程序:用汇编语言编写的程序 5、汇编程序:把汇编语言源程序翻译成目标程序的加工程序MASM 6、二、十、十六进制转换(掌握<256)练习1:117=(1110101)B练习2:1000 1011 B=(139)D练习3:1011 1000 0000 0101 B=(B805)H 7、机器数:是指计算机中的数据,可以分为无符号数和有符号数字长为N位时无符号数表示范围0≤N≤2N-1 当N=8时0≤N≤255 8、原码(8位):最高位为符号位(正数用0表示,负数用1表示),其他位为数值位 如X=+45=+0010 1101B [X]原=0010 1101B 如X=-45=-0010 1101B [X]原=1010 1101B 9、补码(8位):正数的补码与原码相同,负数的补码是将符号位取1,数值位逐位取反,未位加1。如X=+45=+0010 1101B [X]补=0010 1101B 如X=-45=-0010 1101B [X]补=1101 0011B 10、补码运算:是指对一个补码表示的数按位求反后再在末尾加1,可以得到与此数相应的符号相反的数的补码。例、已知[117]补=0111 0101B,[-117]补=1000 1011B,对[117]补作补码运算。解:因为[117]补=0111 0101B,按位求反后得1000 1010B,末尾加1得1000 1011B=[-117]补。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补 12、BCD码:BCD码用4位二进制数表示1位十进制数。常用8421BCD码例:写出十进制314所对应的BCD码 13、8086/8088CPU:16位微处理器和16位数据总线,20位地址总线(寻址空间为1MB)。8088微处理器内部16位数据,外部8位数据,也称准16位机。8086/8088CPU的组成(功能方面):运算器、控制器、寄存器组 14、寄存器是CPU内部临时存放数据的部件,速度比内存快。(1)数据寄存器4个16位寄存器AX,BX,CX,DX,每个寄存器还可以拆成2个8位寄存器使用。 AX累加器:算术运算寄存器,用于存放操作数或运算结果。I/O指令中通过AX与外部交换数据。在乘除运算中指定存放被乘数与被除数,系统功能调用号。AX累加器可以分为AH、AL分别使用。 BX基址寄存器:可作为通用寄存器使用。在计算内存地址是,常作基址寄存器,作为通用寄存器还可以分为BH、BL分别使用。 CX数据寄存器:可作为通用寄存器使用。在循环和串操作指令中作隐含计数器。作为通用寄存器还可以分为CH、CL分别使用。 DX数据寄存器:可作为通用寄存器使用。在I/O操作中,DX用来存放I/O端品地址。在乘除法运算中与AX组合一起存放双字型数据。作为通用寄存器还可以分为DH、DL 分别使用。 (2)变址寄存器(2 个16位):SI 源变址寄存器.DI 目的变址寄存器 BP基址寄存器:用于存放栈中的操作数的偏移地址。SP堆栈指针寄存器:用来指示栈顶的当前位置(偏移地址)。 IP 指令指针寄存器(程序计数器):用于存放下一条指令所在偏移地址。与CS配合,用来确定程序中下一条指令的物理地址。 15、PSW程序状态字寄存器(标志寄存器):8088微处理器使用16位中的9位设置了9个标志。标志位SF、OF、CF、ZF的含义0010 1001B+1110 1000B=1 0001 0001B CF=1 OF=0 SF=0 ZF=0 16、段地址寄存器:段表示一块内存空间(大小可变),最大为64K字节,最小为16字

C语言例题及课后练习题汇总

1.在屏幕上显示一句话“欢迎学习C语言”。 2.求一个数的平方。 3.输入两个数,输出其中最大数。 4.编写一个C程序,输入三个整数,输出其中最大数。 5.编写一个C程序,从键盘上输入矩形的长和宽,屏幕上显示对应的矩形周长和面积。6. 编写一个C程序,输出9的阶乘的结果。 7.从键盘输入一个大写字母,输出其对应的小写字母。 8.用条件运算符实现:输入一个英文字母,如输入小写字母,输出其对应的大写形式,如输入大写字母,则原样输出。 9. 编程题:从键盘输入三个数a、b、c,输出平均值aver。 10. 计算工资税额。有一种工资纳税制度的规定为:如果工资超过50000元,缴纳的税额为工资总额的50%;如果工资超过10000元,纳税比例为工资总额的30%;如果工资超过7000元,纳税比例为工资总额的20%;如果工资超过5000元,纳税比例为工资总额的10%;如果工资少于等于5000元,不需纳税。设计一个程序,按照工资数额算出需要缴纳的税额。11.由键盘输入一个字符,判断是数字、英文字母还是其他字符。用if语句实现。 12. 由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。 13. 从键盘输入1~7之间的数字,输出表示一个星期中对应的某一天的英文单词。 14. 计算器程序。用户输入运算数和四则运算符,输出计算结果。 15.输入两个数,判断两个数的关系是“大于”、“等于”或者“小于”,并输出结果。16.从键盘任意输入三个数,按照从小到大顺序输出。 17.编写程序判断输入的一个正整数是否既是5又是7的倍数。若是,则输出yes;若否,则输出no。 18. 用while循环输出1+2+…+100的结果。 19. 从键盘输入整数n,求1+2+…+n的结果并输出。 20. 求水仙花数。如果一个三位数的百位数、十位数和个位数的立方和等于这个数,那么这个数就被称为水仙花数。 21. 求2+4+…+100的结果并输出。 22. 用for循环输出1+2+…+100的结果。 23. 计算Fibonacci数列的前30项,并输出。 24. 求具有abcd=(ab+cd)2性质的四位数。比如:3025具有这样的性质,将它平分成两段30和25,然后加和取平方值,即 (30+25)2,恰好等于3025本身。请求出这种性质的全部四位数。 25. 编程题:求100+99+…+1的结果并输出。 26.编程题:从键盘输入一个值,统计1到这个数之间不能被3整除的数的个数,并输出这些数。 27. 从键盘输入一个数n,判断n是否是素数。 28. 统计1~50之间不能被3整除的数的个数并输出这些数字。 29. 输出下列图形。

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 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.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言练习习题(带详解答案)

欢迎阅读 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; 2. 信息。 scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area);

printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;

char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: } 5. float fee; printf(“please input hour:\n”); scan f(“%d”,&hour); if(hour<=10) fee=30;

else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); } 6. } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { int i; long sum=1;

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

c语言练习题总结

1、判断一个三位数的个位和百位之和等于十位。 #include int main(int argc, char* argv[]) {int sum,a,b,c; printf("请输入一个三位数\n"); scanf("%d",&sum); a=sum%10; c=sum/10%10; b=sum/100; if(c==a+b) printf("yes\n"); else printf("no\n"); return 0;} 2、假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比? 计算公式:P=(1+r)的n次方,r为年增长率;n为年数;P为与现在相比的百分比。 #include #include int main(int argc, char* argv[]) {int n; scanf("%d",&n); float r,p; r=0.1; p=pow((1+r),n); printf("p=%f\n",p); return 0;} 3、输入5个字符密码,密码规律是用原来的字母后面第四个字母代替原来的字母。 #include int main(int argc, char* argv[]) {char c1,c2,c3,c4,c5; printf ("请输入5个字符\n"); scanf("%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5); c1=c1+4; c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); return 0;}

c语言第1章练习题答案

第一章 C语言概述练习题 一、选择题 1.C语言是一种( )。 A) 机器语言B) 汇编语言C) 高级语言 D) 低级语言 2.下列各项中,不是C语言的特点是( )。 A) 语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好 C) 能实现汇编语言的大部分功能D) 有较强的网络操作功能 3.下列叙述正确的是( )。 A) C语言源程序可以直接在DOS环境中运行 B) 编译C语言源程序得到的目标程序可以直接在DOS环境中运行 C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D) Turbo C系统不提供编译和连接C程序的功能 4.下列叙述错误的是()。 A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 5.一个C程序的执行是从()。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 6.以下叙述不正确的是()。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 7.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 8.一个C语言程序是由( )。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 9.以下有4组用户标识符,其中合法的一组是()。 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define 10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 ()。

c语言程序设计基础单元总结与练习题及答案

c语言程序设计基础单元总结与练习题及答案

《C语言程序设计》单元总结与练习题 答案

单元一程序设计宏观认识 单元总结提升 本单元中,核心内容有C语言程序框架结 构、程序的构成和程序开发过程。通过本单元的 学习,我们应该知道: 1.C语言程序最基本的程序框架由两部分构 成,分别是: (1)编译预处理 (2)函数组 2.C程序最大的特点就是所有的程序都是用 函数来装配的,函数是构成C语言程序的基本 单位,函数包括主函数、库函数和自定义函数。 函数的一般结构形式为: 函数返回值类型函数名(形式参数) //函数首部 { 说明语句; //函数体 可执行语句; } 3.标识符是用来标识程序中的某个对象名字 的字符序列。C语言把标识符分为三类,即关 键字、预定义标识符、用户自定义标识符。对 于用户自定义标识符的命名C语言规定: (1)所有的用户标识符必须先定义后使用; (2)用户标识符由字母(A~Z,a~z)、数字 (0~9)、下划线“_”组成,并且首字符不能

是数字; (3)区分大小写; (4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。 4.理论上讲,程序开发过程分为四个步骤,分别为: (1)编辑源程序 (2)编译源程序,生成目标程序 (3)连接目标程序及其相关模块,生成可执行文件 (4)运行可执行文件 5.简单描述使用VC++6.0开发应用程序的步骤: 如图所示: 程序框架结构和程序开发过程,还要对C语言程序设计的知识脉络有一定的了解。 单元练习 一.选择题 1.构成C语言程序的基本单位是(c )。 A.框架B.预处理C.函数D.语句 2.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为( b )。

C语言练习题真答案(汇总版)

0在C语言中,合法的字符常量是(D )。 A. '字' B. "A" C."ABC" D.'\x41' 1下面叙述正确的是(B)。 A.程序中必须包含有输入语句 B.变量按所定义的类型存放数据 C.main函数必须位于文件的开头 D.每行只能写一条语句 2错误的叙述是(D)。 A.一个C语言源程序可由一个或多个函数组成 B.若一条语句较长,也可分写在下一行上 C.C程序必须包含一个main()函数 D.构成C语言源程序的基本单元是算术表达式 3(C)是关于C语言数据类型的正确叙述。 A.变量必须先定义后使用 B.不允许使用空类型 C.枚举类型不是基本类型 D.数组并不是构造类型 4 main( )函数的位置(B)。 A.必须在自定义函数前面 B.可以在自定义函数后面 C.必须位于程序的最前面 D.必须在自定义函数后面 5 C语言函数体由(C)括起来。 A. < > B. ( ) C.{ } D.[ ] 6(A)是不正确的叙述。 A.注释说明只能位于一条语句的后面 B. C源程序的基本组成单元是函数 C.C源程序可由一个或多个函数组成 D.每条语句最后必须有一个分号 7一个C语言源程序是由(B)。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 8结构化程序设计的三种基本结构是(C)。 A.函数结构、判断结构、选择结构 B.平行结构、嵌套结构、函数结构 C.顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构 9C源程序的调试是指对源程序进行(C)。 A.录入与编辑 B.查错与编译 C.查错与排错 D.连接与运行 10C语言中,可将一系列语句置于(C)从而构成复合语句。 A.一对尖括号"< >"之间 B.一对圆括号"( )"之间 C.一对花括号"{}"之间 D.一对方框号"[ ]"之间 11构成C源程序的基本单位是(D)。 A.语句 B.变量 C.运算符 D.函数 12以下叙述中正确的是(A)。 A.C源程序中注释部分可以出现在程序中任意合适的地方 B.一对花括号"{}"只能作为函数体的定界符 C.C源程序编译时注释部分的错误将被发现 D.构成C源程序的基本单位是函数,所有

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

2018 C语言复习题

C语言复习题 熟读理论教材,理解相关知识,并复习理论教材课后练习题 (切记:以理论教材知识、例题和课后练习为主复习) 熟读课本例题及知识,完成以下知识点的复习及总结。 一.填空 1.一个C语言的执行是从本程序的____开始,到____结束? 2.C语言中用户的标识符命名规则是____。 3.在一个c语言程序中,main函数的位置是___。 4.若有代数式p(mne)/(bcd),其中p、m、n、e、b、c、d为变量,则该代数式的C语言 表达式为___。 5.char a; int x; float y,m; double z,p;则表达式“a*x*m+z-y*x*p”值的数据类型为___。 6.C语言的常用关键字有___(举例说明,越多越好)。 7.printf函数中用到格式符%ms,其中数字m表示输出的字符串占用m列。如果字符串长 度大于m,则输出时的规则是___。若如果字符串长度小于m,则输出时的规则是___。 若如果字符串长度等于m,则输出时的规则是___。当m>0时是左对齐还是右对齐?m<0呢? 8已有定义“int x;float y;”且执行“scanf(“%4d%f”,&x,&y);”语句,若从第一列开始输入数据9876543,则x的值为___。 10.能正确表示a≥-100或a≦100的关系表达式是___。能正确表示a≥-100且a≦100的关系表达式是___。 11.判断逻辑值为“真”的判断方法是___。逻辑值为“假”的判断方法是___。 12.已知“int x=100,y=200,z=300”,则执行if(x>y)z=x;x=y;y=z;语句后,x、y、z的值是___。 13.若m和n均为int型变量,则以下for语句循环执行的次数___及输出结果是___。 for(n=8,m=8;m!=8;m++,++n) printf(“Welcome you!\n”); 14.若n为int型变量,则循环语句“for(n=0;n<100;n++)”控制循环体执行___次。 15.在循环语句循环体中执行continue语句,其作用是___,break的作用是__;在swich() Case语句中break语句作用是__。 16.关于函数的参数,实参可以是__,形参可以是__, A.表达式; B.变量c.常量D.默认值 17.C语言的编译系统对宏命令的处理是在什么时间进行__ 18.在C语言中,函数返回值的类型最终取决于__ 19.定义二维整型数组b时,该数组行号和列号是否可以为变量? 20.对一维数组和二维数组定义及初始化的方法进行总结,并举例说明__ 21.若有以下语句,char a[]=”abcdefgh”; char b[]={‘a’,’b’,’c’,’d,’e,’f’,’g’,’h’};则a和b数组长度分别为__和__ 22.设有定义“int n1=0,n2,*p=&n2,*q=&n1;”,以下赋值语句中与“n2=n1;”语句等价的是另外一种表示语句为__

相关文档
最新文档