b)if(a>c)printf("%d\n",a);elseprintf("%d\n",b);printf("end\n");}" />
当前位置:文档之家› C语言练习题和答案(新)

C语言练习题和答案(新)

C语言练习题和答案(新)
C语言练习题和答案(新)

第1

1.执行以下程序的输出结果是__8921__。

main()

{ int n1,n2=1298;

while(n2!=0) {

n1=n2%10;n2=n2/10;printf("%d",n1);}

}

2.以下程序的运行结果是__end____。

main()

{

int a,b,c;a=2;b=3;c=1;

if(a>b) if(a>c)printf("%d\n",a);

else printf("%d\n",b);

printf("end\n");}

3.如果调用函数fopen() 不成功,则函数的返回值为__0__。

4.以下程序段的执行结果是_ffff__。

int a=-1;

printf("%x",a);

5.表示字符串s1等于字符串s2的逻辑表达式为_strcmp(s1,s2)==0_。

6.在C语言中,&作为双目运算符时表示的是按位与运算符,而作为单目运算符时表示的是__取地址__运算符。

7.C语言中的合法标识符只能有三种字符组成,它们是字母,_数字___和下划线。

8.C语言中从作用域的角度来看,变量可以分成__全局_变量和局部变量。

9.定义struct{

int n;

char y[5];

}tab[2]={{1,"ab"},{2,"cd"}},

*p=tab;

则表达式:printf("%s\n",p->y);的结果为__ab___。

10.以下程序段的执行结果是____6,8,6,7_______。

main()

{ int a1,a2,b1,b2;

a1=5;a2=7; b1=++a1;b2=a2++;

printf("%d,%d,%d,%d\n",a1,a2,b1,b2);

}

3.语句for(i=-2;i<5;i++) 的循环体共执行__7___次。

4.C语言提供专用于输入一个字符串(包括空格)的函数:___gets()______。

5.局部变量从存储类别可分为auto、register、__static__三种。

1.在TC

2.0中快捷键Ctrl+F9的功能是编译、连接和_运行______。

2.C语言函数库中字符串复制函数的函数名是strcpy___________。

3.有定义static char s[ ]="abc\tdef\n";则数组空间的字节数为___9_____。

4.写出a不能被b整除的C语言表达式是__a%b!=0___________。

6.执行以下程序的输出结果是_4321______。

main()

{ int n1,n2=1234;

while(n2!=0) {

n1=n2%10;n2=n2/10;printf("%d",n1);}

}

7.已知int x=10,y=20,z=30;则以下程序段的执行结果是__20,30,30_____。

if (x>y) z=x;x=y;y=z;

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

8.在C文件中,数据存放的两种形式是文本形式和二进制形式。

9.有函数调用语句sub(a,1,fun(x,y),b+c,(m+n,c*h));则该函数调用语句中的实参个数为____5______。

1.以下程序运行结果是___6_________。

main()

{

int m=5;

if(m++>5) printf("%d",++m);

else printf("%d",m--);}

3.以下程序的运行结果是___20_________。

main()

{

int a,b,c,d,x;

a=c=0;b=1;d=20;

if(a) d=d-10;

else if(!b)

if(!c)x=15;

else x=25;

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

4.在C语言中对文件读写之前应该用_fopen_____函数打开文件。

5.写出将字符串s1拷贝到字符串s2后,再连接到字符串s3之后的语句为__strcat(s3,strcpy(s2,s1));________________。

6.在C程序的表达式中,判断表达式成立的条件是___1_____表示逻辑"真"值,0表示逻辑"假"值。

7.有定义static char s[ ]="China";则数组所占空间为____6_________个字节。

8.C语言中的合法标识符只能有三种字符组成,它们是_字母_____、数字和下划线。

9.表达式a=(b=3)*(c=9)的值是__27_____ 。

10.若定义了如下的结构体类型变量x,则x所占用的内存字节数为___11_____。

struct data1

{ int i;

char ch;

double f;

}x;

1.设i,j,k均为int型变量,则执行完以下for语句后,k的值是___10_______。

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

2.有定义

#define M(x) x*x/2

int a=2,b=3;

则M(a+b)/M(a) 的值为__8_______。

4.以下函数的功能是:求两整数的差,并返回。

int sub ( int a,int b)

{

__return___ a-b;

}

5.以下程序段的执行结果是___-4____。

main()

{

int a=2;a+=a-=a*a;

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

}

6.将变量a、b中的大数赋给变量c 的表达式为_c=a>b?a:b__________。

7.C语言用___分号_________表示每条语句的结束。

8.若有int a[3]={10,12,30};则*(a+2)=___30________。

9.union data1

{ char name[6];

char sex;

int age;

}x;

则:printf("%d ",sizeof(x))的结果是:__6_______。

10.若for循环是当型循环,则do--while 循环是___直到型循环_________ 。

2.以下函数中,若m=10,则函数共输出___4____行。

void sub(int m,int s[ ] )

{

int n;

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

{ printf("%2d",s[n]);

if (!(n%3)) printf("\n"); }

}

3.在使用标准数学函数时,必须在程序开头部分使用#include ___________命令。

4.strcmp(s1,s2 ) 函数需要两个参数s1、s2,它们的类型可以是字符串或字符型指针。

5.计算表达式a=20/2%3 后,a 的值为__1______。

6.设有类型说明如下:

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

则*(p+3)=______4___。

7.构成C语言程序的基本单位是____函数____________。

8.有定义int a[][4]={{10,12},{1,30,3},{2}};则数组a中有____12______个元素。

9.有定义long k=255793L;若使输出结果是255793的语句为____printf(“%ld”,k);____________。

10.定义标识符PI为符号常量代表一个“3.14”这个字符串__#define PI 3.14____。

2.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

st=(char*)malloc(11); _______________________。

3.设char ch='a’;则ch对应的内存单元中存储的是常量'a'的__ASCII______码。

7.若int x=3,则表达式x+=x-=x*=5运算后,x的值为___0____。

8.C语言中,头文件的扩展名是_____.h__________。

9.C语言中用______’\0’__________表示字符串结束的标志。

10.int x[2][3],* p; p=&x[0][0]; 用_*(p+4)_________ 表示x[1][1]。

1.执行以下程序的输出结果是_______。

main()

{ int n1,n2=7654;

while(n2!=0) {

n1=n2%10;n2=n2/10;printf("%d",n1);}

}

3.定义标识符fp 为文件型指针变量的语句为_FILE *fp;__________。

4.指针变量所代表存储单元是用来存放_变量的地址_________的。

5.以下程序段的执行结果是_fffe______。

int a=-2;

printf("%x",a);

6.若有以下定义:

double w[10];

则w数组元素下标的上限为_9________。

7.在TC 2.0中Ctrl+F9的功能是编译、_连接______和运行。

8.在C程序中有三种逻辑运算符,它们是:!、&&和____||_____。

9.设int i=3.56;则i对应的存储单元中存放的数值为__3_____。

10.跳过循环体中其后尚未执行的语句,而开始执行下一次是否循环的判定的语句是_____continue;________。

1.局部变量从存储类别可分为auto、register、_static__________三种。

2.有定义#define M(x) x*x

int a=3,b=2;

则M(a+b)/M(a+b) 的值为_17______________。

3.enum{a,b=3,c,d=6,e} k;

k=e;

k的值为___7_____ 。

5.在C语言中,16位微型机int型数据所占用的内存为___2___个字节。

6.表示33&&x<6||x<0__________。

1.设有类型说明如下:

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

若数组所占内存单元的起始地址为2000,则p+5=_2010_______。

2.C语言程序的注释是以___\*_________开头的。

3.将十进制整数123,化为二进制数为___1111011______________。

4.若int x ;表示x为奇数的表达式为____x%2==1_____________。

5.以下程序运行结果是___8___________。

main()

{

int m=6;

if(m++>5) printf("%d",++m);

else printf("%d",m--);}

6.若使用库函数sin(x),则必须使用______#include ____________预处理命令。

7.在C语言中对文件读写使用结束之后应该用__fclose______函数关闭文件。

第2

1、局部变量的存储类型可以是_abd___。

A.auto

B.static

C.extern

D.register

E.void

2、下列属于双目运算符的是_abd___。

A.+=

B.>

C.,

D.>>

E.?:

3、下列属于程序控制语句的是_bcde___。

A.int a;

B.if(a>b)t=a;

C.for(i=0;i

D.while(x>0)x--;

E.return n;

4、下列关于"switch(表达式)"语句说法正确的是abcd____。

A.switch语句是多分支语句

B.switch后的(表达式)允许是任何类型

C.switch语句中允许有一个default子句,也可以没有

D.switch语句中的每个case子句的常量表达式的值必须互不相同

E.switch语句中的每个case子句必须有一个break语句

5、下列语句定义数组正确的是bd____。

A.int a(10);

B.int a[2+9];

C.int arr[0 to 3][0 to 4];

D.int arr[3][4];

E.int [3,4];

6、下列合法标识符是_cd___。

A.void

B.define

C.WORD

D.a3_b3

E.case

7、5.下列格式控制字符中能够输出整型数据的是abcd____。

A.%d

B.%ld

C.%lo

D.%x

E.%lf

8、若有以下程序段,并且w和k都是整型变量:

for(w=1;w<=k;w++)

printf("*");

则与上面程序段等价的循环语句是_abcd___。

A.for(w=k;w!=0;w--)

printf("*");

B.w=k;

while(w--!=0)

printf("*")

C.w=k;

do {

w--;

printf("*");

}while(w!=0);

D.for(w=k;w;--w)

printf("*");

E.w=k;

for(k=1;k

printf("*");

9、函数的类型可以是abce____。

A.int

B.void

C.int *

D.typedef

E.double

10、下列正确的赋值语句是_ade___。

A.n=(i2,i++);

B.j++;

C.++(i+1);

D.x=j>0;

E.y=a>b?a:b;

11、下列说法正确的是bcde____。

A.在C程序中,无论是整数还是实数,都能被准确地表示

B.在C程序中,声明变量时为变量开辟内存空间

C.静态变量的生存期与整个程序的运行期相同

D.C语言中变量必须先说明后引用

E.C语言中空语句是合法的

12、C语言提供的逻辑运算符有_bde___。

A.and

B.||

C.or

D.&&

E.!

13、下列语句中能够判断整型变量a、b、c的值是否能够构成三角形的语句是bc____。

A.if(a+b>c && a-b

B.if(a+b>c && a+c>b && b+c>a)

C.if(a-b

D.if(a-b

E.if(a+b>c)

14、在下列选项中,构成死循环的程序段是_abde___。

A.int i=100;

while(1)

{ i=i%100+1;

if(i>100)break; }

B.for(;;)

C.int k=1000;

do

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

D.int s=36;

while(s);--s;

E.for(i=1;;i++);

15、下列关于符号常量正确的是_ade___。

A.符号常量用标识符表示

B.符号常量不允许被修改

C.符号常量允许在程序运行中改变

D.#define N 10

E.符号常量没有值和类型的含义

16、下列不合法的实型常量有_abd___。

A.5E2.0

B.E-3

C.2E0

D.1.3E

E.2E2

17、把字符串"hello"赋给数组b的语句是_acde___。

A.char b[10]={'h','e','l','l','o'};

B.char b[10];b="hello";

C.char b[10];strcpy(b,"hello");

D.char b[]="hello";

E.char b[]={'h','e','l','l','o','\0'};

18、可以不要进行函数原型声明的函数是_bc___。

A.被调用函数的数据类型是int

B.被调用函数定义的位置在调用函数之前

C.主函数main()

D.被调用函数的数据类型是float

E.被调用函数的数据类型是char

19、关于数组说法正确的是_abc___。

A.数组的下标从0开始

B.数组的各个元素在内存中是连续存放的

C.C编译系统对数组下标是否越界不做检查

D.C语言允许对整型数组名进行整体赋值

E.数组不允许进行初始化,只能在程序运行期间赋值

20、下列语句正确初始化的是_ace___。

A.char str[]="abcd";

B.char str[4]="abcd";

C.char str[4]={'a','b','c','d'};

D.char str[]={"a","b","c","d"};

E.char str[4]={97,98,99,100};

21、下列不合法的字符常量是_bd___。

A.'\010'

B."B"

C.'\X12'

D.B

E.'B'

22、整型变量X和Y的值相等,且为非0值,以下选项中,结果不为0的表达式是_abcd___。

A.X||Y

B.X|Y

C.X&Y

D.!X==!Y

E.X^Y

23、下列属于基本数据类型的是abce____。

A.int B.float

C.double D.struct

E.char

24、关系表达式的结果可以是_bc___。

A.非0值B.1

C.0 D.true

E.false

25、设已定义char s[9]="xinjiang"和int i,则下面的输出函数调用中正确的是__abc__。

A.printf("%s",s);

B.for(i=0;i<9;i++)printf("%c",s[i]);

C.puts(s);

D.for(i=0;i<9;i++)puts(c[i]);

E. for(i=0;i<9;i++)putchar(c[i]);

26、下列整型常数表示正确的是_abce___。

A.123L B.123u

C.0x123 D.123uL

E.0123

27、下列运算符中右结合的是acd____。

A.! B.+

C.++ D.?:

E.>=

28、设有语句float ave(int a[10]);float f;int w[10];则正确的函数调用形式是_bd___。

A.f=ave(w[ ]); B.f=ave(w);

C.f=ave(w[10]); D.printf("%f",ave(w));

E.printf("%d",ave(w[10]));

29、下列语句能够求出1+2+3+...+100的和的语句是_ae___。

A.for(i=1,sum=0;i<=100;sum+=i,i++);

B.i=1;sum=0;while(i++<=100)sum+=i;

C.i=1;sum=0;if(i++<=100)sum+=i;

D.i=1;sum=0;do{sum+=i;}while(i<=100)

E.i=1;sum=0;for(;i<=100;i++)sum+=i;

30、下列合法的转义字符常量是_abc___。

A.‘\n’B.‘\r’

C.‘\t’D.‘\x1a’

E.‘\101’

31、逻辑运算符要求的运算量可以是_abcd___。

A.关系表达式B.非零值

C.零值D.数值表达式

E.逻辑量

32、若有条件表达式"if(a

A.(a

C.(a

E.(a

33、设A是整型变量,正确表达数学关系10

A.10

B.A==11||A==12||A==13||A=14

C.A>10 && A<15

D.!(A<=10) && !(A>=15)

E.A>10||A<15

34、下列语句中能够输出正确的换行符的语句是abe____。

A.printf("\n");

B.putchar('\n');

C.scanf("%d\n");

D.getchar('\n');

E.printf("%c",'\n');

第3

1.已知int a,b;下列switch语句中正确的是( b )。

A. switch(a)

{case a: a++;break;

case b: b++;break;}

B. switch(a+b)

{case 1: a+b;break;

case 2: a-b;break;}

C. switch(a*a)

{case 1,2:++a;

case 3,4:--b;}

D. switch(a/0.5+b)

{case 5-a:a/5;break;

default:a+b;}

2.若有如下语句,则下面正确的描述是( b )。

char x[ ]="12345";

char y[ ]={'1','2','3','4','5'};

A. 数组x和数组y的长度相同

B. 数组x的长度大于y数组的长度

C. 数组x等价于数组y

D. 数组x的长度小于数组y的长度

3.scanf ( ) 函数的正确调用形式是( d )。

A.scanf(格式控制串,输出项表列);

B.scanf(格式控制串,输出项地址表列);

C.scanf(格式控制串,输入项表列);

D.scanf(格式控制串,输入项地址表列);

4.下列说法正确的是( c )。

A. C 语言的主函数不允许有参数

B. C 语言的主函数最多允许1 个参数

C. C 语言的主函数可以无参数

D. C 语言的主函数允许任意个参数

5.表达式(!'1'||'1')+5 的值是( c )。

A. 不确定

B. 5

C. 6

D. 7

7.若有以下定义和语句, char s1[]="12345", s2[]="1234";则函数strcmp(s1,s2)的值为( a )。

A. 大于0

B. 小于0

C. 等于0

D. 等于1

8.选出表达式结果为假的一项( b )。

A. 1<4&&5>=4

B. (2>5==5)

C. (3<=3)&&(2<5)

D. !(4<=8)||(3<=7)

9.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( a )。

A. auto

B. static

C. extern

D. register

10.下列表达式中,( a )是非法的。

已知float a=5;int b=4;

A. a%3+b

B. b*b&&a||b

C. (a>b)+(int)b%2

D. --b+a

11.下列运算符中,优先级别最高的是( b )。

A. <=

B. %

C. ||

D. +

12.关于下列语句描述正确的是( b )。

union

{ unsigned int n;

unsigned char c; }u1;

A. u1是共用体类型名

B. u1是共用体变量名

C. u1是结构体类型名

D. u1占用内存空间3字节

13.设有int x,y;正确的输入语句是( c )。

A. scanf("%d%d",x,y);

B. scanf("x=%f,y=%f",&x,&y);

C. scanf("%d,%d",&x,&y);

D. scanf("x=%d,y=%d",x,y);

14.在一个C语言程序中( b )。

A. main函数必须出现在所有函数之前

B. main函数可以在任何地方出现

C. main函数必须出现在所有函数之后

D. main函数必须出现在固定位置

15.有关预处理命令#define N 10,以下描述正确的是( c )。

A. N在程序运行时可以被改变

B. N是个整型变量

C. N没有值和类型的含义

D. N是个标识符,称为宏体

16.当调用函数时,实参是一个数组名,则向函数传送的是( b )。

A. 数组的长度

B. 数组的首地址

C. 数组每一个元素的地址

D. 数组每个元素中的值

17.有以下程序

main()

{ int i;

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

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

执行后输出的结果是( a )。

A. 011122

B. 012

C. 012020

D. 120

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

#define M(x,y,z) x*y+z

main()

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

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

}

A. 19

B. 17

C. 15

D. 12

19.下列程序的输出结果是( d )。

main()

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

printf("%d",*p);

}

A. 非法

B. a[4]的地址

C. 5

D. 4

20.函数fun(float x)的函数类型是( a )。

A. int

B. void

C. float

D. 不确定

21.关于C程序说法正确的是( c )。

A. 一行只能写一条语句

B. 一个语句不可以分写在多行上

C. C语言本身没有输入输出语句

D. 分号不是C语句的必要组成部分

22.关于语句FILE *fp;描述错误的是( c )。

A. fp是一个指向FILE类型的指针变量

B. 通过fp可以实现对与它相关文件的访问

C. fp指向与它相关文件的地址

D. 函数fclose(fp)可关闭fp指针指向的文件

23.假定x和y为double型,则表达式x=2,y=x+3/2的值是( d )。

A. 3.500000

B. 3

C. 2.000000

D. 3.000000

24.下列运算符结合方向是右结合的是( d )。

A. +

B. &&

C. >=

D. ?:

25.以下语句中不正确的是( a )。

A. char s[10];s="test";

B. char s[]={'t','e','s','t'};

C. char s[20]="test";

D. char *s="test\n";

26.有以下程序段

int k=0;

while(k=1) k++;

while 循环执行的次数是( a )。

A.无限次

B.有语法错,不能执行

C.一次也不执行

D.执行1次

27.关于else语句描述正确的是( c )。

A. 不可缺少

B. 必须与离之最近的if语句配对使用

C. 不可以单独使用

D. 必须使用缩进格式表示

28.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( c )。

A. 0

B. 1

C. 2

D. 3

29.合法的赋值语句是( b )。

A. x=y=100

B. d--;

C. x+y;

D. c=int(a+b);

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

int x=3;

do

{ printf("%3d",x-=2);

}while(!(--x));

A. 1

B. 3 0

C. 1 -2

D. 死循环

31.只有当整数x为奇数时,表达式为逻辑“真”的是( b )。

A. x%2==0

B. !(x%2==0)

C. (x-x/2*2)==0

D. !(x%2)

31.下列程序段的输出结果是( a )。

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

if(a%3==1)break;

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

A. 1

B. 2

C. 3

D. 4

32.以下叙述中正确的是( b )。

A. 全局变量的作用域一定比局部变量的作用域范围大

B. 静态(static)类别变量的生存期贯穿于整个程序的运行期间

C. 函数的形参都属于全局变量

D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值

33.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5)); ,该函数调用语句中,含有的实参个数是( a )。

A. 3

B. 4

C. 5

D. 有语法错误

34.与y=(x!=0?1:-1);功能相同的if语句是( b )。

A.if(x<>0) y=1;

else y=-1;

B.if(x) y=1;

else y=-1;

C.if(x) y=-1;

else y=1;

D.if(x>=0) y=1;

35.以下能正确定义数组并正确赋初值的语句是( d )。

A. int N=5,b[N][N];

B. int a[0][2]={{1},{3}};

C. int c[2][]={{1,2},{3,4}};

D. int d[3][2]={{1,2},{3,4}};

36.下列选项中合法的字符常量是( b )

A. "&"

B. 'R'

C. "ABC"

D. "\n"

37.若有如下定义:

int a[10];

则下面不能正确表示a[1]地址的表达式是( d )。

A. &a[1]

B. &a[0]+1

C. a+1

D. a++

38.若有以下程序:

main ( )

{ int a[3][3]={1,2,3,4,5,6,7,8,9} , i=0,sum=0;

do

{ sum+=a[i][i];

i++;

} while(i<3);

printf( "%d" , sum ); }

则程序运行后的输出结果是( a )。

A. 15

B. 12

C. 16

D. 18

39.下列数组声明中不正确的是( c )。

A.char a[4] ;

B. char a[ ][4]={"aa",""};

C. char a[4][ ];

D.char a[5][4];

40.有以下声明语句:

struct x

{ int a ; float b; char c; } y ; 则下列叙述中不正确的是( b )。

A. x 是定义的结构体名.

B. y 是定义的结构体类型名.

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

D. a,b,c 都是结构体成员名.

41.已知int t=0;则以下关于while(t=1){. . .}的说法正确的是( c )。

A. 循环控制表达式不正确

B. 循环控制表达式的值永远为1

C. 死循环,永远无法结束

D. 一次循环体都不会执行.

42.int x=3,y=4,a=5,b=6; 则表达式(a=x) &&(b=y)的值是(b)。

A. 0

B. 1

C. 2

D. 不确定

43.执行以下程序后的输出结果为( b )。

# include

main()

{ int i;

for (i='A'; i<'I';i++,i++)

printf("%c",i+32); printf("\n"); }

A. abcdefghi

B. aceg

C. acegi

D.编译出错,无输出。

44.以下关于宏替换的叙述不正确的是( d )。

A. 宏替换不占用运行时间

B. 宏替换只是字符替换,不作语法检查

C. 宏名称无类型

D. 宏名称必须用大写字母表示

45.一个C语言程序由若干个函数组成,其中唯一不可缺少的函数是( d )。

A. 库函数

B. scanf 函数

C. printf函数

D. main函数

46.下面程序的输出是( a )。

main()

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

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

}

A. 0

B. 1

C. 2

D. 3

47.若有static char s[10 ]="abcdefg"; 则数组s 所占的字节数是( b)。

A.7

B. 10

C. 11

D. 8

48.下列程序的功能是( a )

main ( )

{

int s[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

int m,n;

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

{ for (n=0;n<=m;n++)

printf("%d",s[m][n]);

printf("\n");

} }

A.输出4×4矩阵的下三角的元素.

B.输出4×4矩阵的上三角的元素.

C.输出4×4矩阵的对角线上的元素.

D.输出4×4矩阵的全部元素.

49.执行语句for ( x=4; x-->0 ; );后,变量x 的值是( a )。

A. -1

B. 0

C. 1

D.不确定

50.若有以下程序:

main ( )

{ int x[6]={11,16,17,28,20}, *t=x+3;

printf ("%d" ,*t-2);

}

则程序运行后的输出结果是( d )。

A. 18

B. 14

C. 29

D. 26

51.表达式x 和y 的取值同时在( 0, +∞) 或同时在(-∞, 0) "的表达式是( c ) 。

A. (x+y>0) && (x+y<=0)

B. (x>=0 | | y>=0) && (x<0 ||y<0)

C. x>0&&y>0 || x<0 && y<0

D. (x>=0&&y>=0) &&(x<0&&y<0)

52.有以下程序:

main( )

{ int n,s[8];

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

s[8-n]=n;

printf ("%d%d%d" ,s[2],s[4],s[6] ); }

则程序运行后的输出结果是( c )。

A. 246

B. 741

C. 642

D. 147

53.设int x=12,y=12345;则执行语句printf("x=%4d,y=%4d",x,y);的结果是( c )。

A. x= 12,y=1234

B. x=12,y=12345

C. x= 12,y=12345

D. x= 12,y=2345

54.C 语言规定函数返回值的类型由( a )。

A.在定义函数时所指定的函数类型所决定。

B.调用该函数时的主调函数的类型所决定。

C.return语句中的表达式的类型所决定。

D.调用该函数时系统临时决定。

55.while 循环和do -while 循环的区别是( c )

A. while 循环和do -while 循环的循环体都可以不执行;

B. while 循环的循环体将至少执行一次,而do -while 循环的循环体可以不执行;

C. do- while 循环的循环体将至少执行一次,而while 循环的循环体可以不执行;

D. while 循环和do -while 循环的循环体都将至少执行一次。

56.下列程序的执行结果是( c )。

main()

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

A. 9876

B. 876

C. 987

D. 8765

57.下列说法正确的是( d )。

A. C 语言能嵌套定义函数,但不能嵌套调用函数

B. C 语言不能嵌套定义函数,也不能嵌套调用函数

C. C 语言能嵌套定义函数,也能嵌套调用函数

D. C 语言不能嵌套定义函数,但能嵌套调用函数

58.a,b,c,d 都为float 型,且已正确赋值,则与数学表达式2ab/(5cd)等价的C语言表达式是( a )。

A. a/c*b/d*2/5

B. a/(5*c*d)/2*b

C. 2*a*b/5*c*d

D. 2/5*a*b*(1/c*d)

59.下列程序的执行结果是( b )。

main()

{ int a,b,c; c=(a=3,b=a--);

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

A. 3,3,3

B. 3,2,3

C. 2,3,3

D. 2,2,3

60.有如下定义:int a=3,b=-4; long c=5; float x; double y ; 则下列选项中不符合C语言语法的表达式是( c )。

A. a+=a-=a*b

B. a%b

C. y=2*x;

D. y=(float)c

第4

1.在C语言中函数的隐含存储类型是( a )。

A. auto

B. static

C. extern

D. 无存储类型

2.执行语句for(i=1;i++<4;);后,变量i的值为( c )。

A. 3

B. 4

C. 5

D. 不定

3.以下说法不正确的是( c )。

A. C语言中函数和变量一样有数据类型

B. 函数即使没有参数,也不可以缺少函数名后的一对圆括号

C. 函数带有形参时,形参必须是变量

D. 对不需要函数返回值的函数,应定义为void类型

4.以下所列的各函数原型中,正确的是( c )。

A. void fun(var a:int,var b:int);

B. void fun(int a,b);

C. void fun(int a,int b);

D. void fun(a as int ,b as int);

5.若有定义和语句:char s[10];s="abcd";printf("%s\n",s);则结果是( d )。

A. 输出abcd

B. 输出a

C. 输出abcd\n

D. 编译不通过

6.关于数组元素的下标描述正确的是( c )。

A. 必须是常量;

B. 只能从0开始;

C. 必须是整型表达式

D. 下标的个数表示数组的长度

7.下列常数中哪个是不合法的C常量( c )。

A. -0.

B. 0003

C. 3e+2.3

D. "105"

8.在C程序中,设有说明: static int a[2][3]={ 1,2,3,4,5,6 }; 则下列表达式对a数组中的元素值引用正确的是( b )。

A. a(1)(2)

B. **a

C. a[1,2]

D. a[0][3]

9.下列运算符中,优先级别最高的是( c )。

A. <=

B. =

C. %

D. &&

10.关于C程序说法正确的是( c )。

A. 一行只能写一条语句

B. 一个语句不可以分写在多行上

C. C语言本身没有输入输出语句

D. 分号不是C语句的必要组成部分

11.C语言中的if(表达式)语句里,表达式可以是( b )。

A. 逻辑表达式、关系表达式

B. 任何合法的表达式

C. 赋值表达式

D. 逻辑、关系和赋值表达式

12.float i,j,下列可以正确表示把i,j之和转换成整型的C语言表达式( c )。

A. int(i+j)

B. int(i)+int(j)

C. (int)(i+j)

D. (int)i+j

13.下列标识符中非法的是( a )。

A. FILE

B. temp

C. stu_ave

D. sum5

14.程序段:int x=10, y=3,z;

printf("%d\n",z=(x%y,x/y));的输出结果是:( c )。

A. 1

B. 0

C. 3

D. 4

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

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]);

}

A. 258

B. 741

C. 852

D.369

16.下列说法正确的是( a )。

A. continue语句只能用于循环语句中

B. switch语句中必须有default语句

C. break语句只用于循环语句内

D. break终止本次循环,continue终止本重循环

17.关于函数的说法不正确的是( a )。

A. 被调用函数的定义必须放在主调函数之前

B. 函数调用可以嵌套

C. 程序的入口是从main()开始

D. 各函数之间是平行的,相互独立的

18.已知int a,b;则下列表达式不合法的是( b )。

A. a/b

B. (a+b)++

C. a+=b

D. a*=b+3

19.C语言中do {循环体}while( 表达式);语句中,说法正确的是( b )。

A. 循环体可能一次也不执行

B. 循环体会至少执行一次

C. 循环体必须用{}组成复合语句

D. 表达式的值为0时,返回循环体执行循环内容

20.下列属于C语言基本数据类型的是( c )。

A. 整型、实型、逻辑型

B. 整型、字符型、逻辑型

C. 整型、字符型、实型

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

21.若给出以下定义:

char a[]="abcdefg";

char b[]={'a','b','c','d','e','f','g'};

正确的叙述为( c )。

A. 数组a与数组b等价

B. 数组a与数组b的长度相同

C. 数组a的长度大于数组b的长度

D. 数组a的长度小于数组b的长度

22.执行以下程序后的结果为( a )。

main( )

{int i=1;

while(i<=5)

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

A. 1,2,3,4,5,

B. 2,3,4,5,6,

C. 2,3,4,5,

D. 1,2,3,4,

23.以下描述中正确的是( c )。

A. 预处理指完成宏替换和文件包含中指定的文件的调用

B. 预处理命令也是C语句

C. 凡是行首以#开始的控制行都是预处理命令

D. 预处理命令只能放在程序的开头

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

A. 地址传递

B. 单向值传递

C. 由实参传给形参,再由形参传给实参

D. 传递方式由用户指定

25.为表示关系'a'≤x≤'z' ,C 语言表达式应是( a )。

A. (x<='z')&&(x>='a')

B. (x<='z')&(x>='a')

C. (x<='z') and (x>='a')

D. (x<='z')||(x>='a')

第5

1.下列说法正确的是( d )。

A. C 语言能嵌套定义函数,但不能嵌套调用函数

B. C 语言不能嵌套定义函数,也不能嵌套调用函数

C. C 语言能嵌套定义函数,也能嵌套调用函数

D. C 语言不能嵌套定义函数,但能嵌套调用函数

2.C 语言规定函数返回值的类型由( a )。

A.在定义函数时所指定的函数类型所决定。

B.调用该函数时的主调函数的类型所决定。

C.return语句中的表达式的类型所决定。

D.调用该函数时系统临时决定。

3.表达式x 和y 的取值同时在( 0, +∞) 或同时在(-∞, 0) "的表达式是( c ) 。

A. (x+y>0) && (x+y<=0)

B. (x>=0 | | y>=0) && (x<0 ||y<0)

C. x>0&&y>0 || x<0 && y<0

D. (x>=0&&y>=0) &&(x<0&&y<0)

4.下面程序的输出是( a )。

main()

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

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

}

A. 0

B. 1

C. 2

D. 3

5.若有以下程序:

main ( )

{ int a[3][3]={1,2,3,4,5,6,7,8,9} , i=0,sum=0;

do

{ sum+=a[i][i];

i++;

} while(i<3);

printf( "%d" , sum ); }

则程序运行后的输出结果是( a )。答案c—》a

A. 15

B. 12

C. 16

D. 18

6.执行以下程序后的输出结果为( b )。

# include

main()

{ int i;

for (i='A'; i<'I';i++,i++)

printf("%c",i+32); printf("\n"); }

A. abcdefghi

B. aceg

C. acegi

D.编译出错,无输出。

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语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x;

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 。

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语言第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 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

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语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 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语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 。

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

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、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误

差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include #include main() { float A,a,H,h,b; printf("父亲身高(厘米)\n"); scanf("%f",&A); printf("母亲身高(厘米)\n"); scanf("%f",&a); printf("孩子实际身高(厘米)\n"); scanf("%f",&H); printf("请选择孩子性别:女=0,男=1\n"); scanf("%f",&b); if(b) h=(A+a)*1.08/2; else h=(A*0.923+a)/2; if(fabs(H-h)<=3) printf("实际身高符合该公式\n"); else

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

c语言第1、2章练习题答案

第1、2章练习题 1.以下叙述正确的是()。B A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如fun(fun(x)) C)C语言函数不可以单独编译D)C语言除了main函数外,其他函数不可以作为单独文件形式存在 2.以下叙述正确的是()。C A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句 C)简单的C语句必须以分号结束D)C语句必须在一行内写完 3.以下叙述中正确的是()。C A)C程序中的注释只能出现在程序的开始位置和语句的后面 B)C程序书写格式严格,要求一行内只能写一条语句 C)C程序书写格式自由,一条语句可以写在多行上 D)用C语言编写的程序只能放在一个程序文件中 4.下列叙述中错误的是()。A A)一个C语言程序只能实现一种算法B)C语言程序可以由多个程序文件组成 C)C语言程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在5.以下叙述中正确的是()。C 页脚内容1

A)C语言程序将从源程序中的第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序从此开始执行,在此结束 D)main可作为用户标识符,用以命名任意一个函数作为主函数 6.对于一个正常运行的C程序,以下叙述正确的是()。A A)程序的执行总是从main函数开始,在main函数中结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束7.下列叙述正确的是()。D A)每个C语言程序文件中都必须有一个main( )函数 B)在C语言程序中main( )函数的位置是固定的 C)C语言程序中所有函数之间都可以相互调用,与函数所在的位置无关 D)在C语言程序的函数中不能定义另一个函数 8.下列叙述中错误的是()。B A)C程序在运行过程中所有计算机都以二进制方式进行 B)C程序在运行过程中所有计算机都以十进制方式进行 页脚内容2

(完整版)C语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2: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、C语言源程序最多可能由____ABCD____________部分组成? A) 预处理部分B)变量说明部分 C) 函数原型声明部分D)函数定义部分 2、一个完整的C语言源程序最少必须有___C____。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 3、C语言以函数为源程序的基本单位最主要有利于__B_____。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 5、一个C程序的执行是从______A______。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 6、以下叙述正确的是__A______。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 7、以下叙述不正确的是___D_____。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 8、C语言规定:在一个源程序中,main函数的位置是___A_____。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 习题二 一、程序题 1、阅读程序写运行结果 (1)#include int main()

相关主题
文本预览