当前位置:文档之家› c语言复习综合练习题

c语言复习综合练习题

c语言复习综合练习题
c语言复习综合练习题

一选择题(24分,每小题2分)

1.C程序的执行是从一个

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

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

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

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

2.以下程序的输出结果为()。

main( )

{ int i=010,j=10;

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

}

A 11,9

B 9,10

C 8,10

D 9,9

3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;

A 125,6,31,1

B 125,6,1,20

C 125,6.666666,31,20

D 125.534,6.666666,2,20

4.设i和k都是int类型,则for循环语句()。

for(i=0,k=-1;k=1;i++,k++) printf("****\n");

A 循环结束的条件不合法

B 循环体一次也不执行

C 循环体只执行一次

D 是无限循环

5.C语言规定:在一个源程序中,main函数的位置

A.必须在最开始

B.必须在系统调用的库函数后面

C.可以任意

D.必须在最后

6.函数调用语句:fseek(fp,-10L,2);的含义是()。

A 将文件位置指针从文件末尾处向文件头的方向移动10个字节

B 将文件位置指针从当前位置向文件头的方向移动10个字节

C 将文件位置指针从当前位置向文件末尾方向移动10个字节

D 将文件位置指针移到距离文件头10个字节处

7.以下程序的输出结果为()。

main( )

{ char s1[40]="country",s2[20]="side";

int i=0,j=0;

while(s1[i]!='\0') i++;

while(s2[j]!='\0') s1[i++]=s2[j++];

s1[i]=0;

}

A side

B country

C sidetry

D countryside

8.下列说法不正确的是()。

A 主函数main中定义的变量在整个文件或程序中有效

B 不同函数中,可以使用相同名字的变量

C 形式参数是局部变量

D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效

9.在下列程序段中,枚举变量c1的值是()。

enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;

A 1

B 3

C 5

D 6

10.若x、i、j和k都是int型变量,则执行下面表达式后x的值为

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

A.4

B.16

C.32

D.52

11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()。

A int p;

B int (*p)[n];

C int *p[n];

D int (*p)( );

12.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。

A p=a;

B *p=a[0];

C p=&a[0];

D p=&a;

二判断对错,对的划“√”,错的划“×”(20分,每小题2分)

1.参加位运算的数据可以是任何类型的数据。( ×)

2.若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=‘A’,f=12.5。(√)

3.C语言把文件看作是一个字符(字节)的序列。(√)

4.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。(×)

5.在VC++6.0中,下面的定义和语句是合法的:file *fp;fp=fopen("a.txt","r");(×)

6.若有定义:char s[ ]="china";则VC++6.0系统为数组s开辟6个字节的内存单元。(√)

7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21。(√)

8.若有定义和语句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。(√)

9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。(√)

10.在VC++6.0中,此定义和语句是合法的:

enum aa{ a=5,b,c}bb;bb=(enum aa)5;(√)

1.以下程序的输出结果是

main()

{

p rintf(“\n*s1 = %15s*”,”chinabeijing”);

p rintf(“\n*s2 = %-5s*”,”chi”);

}

*s1 = chinabeijing*

*s2 = chi *

2.main( )

{ int x=31,y=2,s=0;

do

{ s-=x*y;

x+=2;

y-=3;} while( x%3==0);

printf(“x=%d\ty=%d\ts=%d\n”,x,y,s); }

x=35 y=-4 s=-29

3main( )

{ int a[6]={10,20,30,40,50,60},i;

invert(a,0,5);

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

printf("\n");

}

invert(int s[ ],int i,int j)

{ int t;

if(i

{ invert(s,i+1,j-1);

t=s[i];s[i]=s[j];s[j]=t;

}

}

60,50,40,30,20,10,

main()

{ char s tr[ ]=“The C program”,c;

int i;

for(i=2;(c=str[i])!=…\0?;i++)

{ switch(c)

{ case …g?: ++i; break;

case …o?: continue;

default: printf(“%c”,c); continue;

printf(“*”);

}

printf(“\n”);

}

e C pr*am

5.以下程序的运行结果是

sub(int x, int y, int *z)

{

*z=y-x;

}

main ()

{

int a,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

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

}

-5, -12, -7

6.main()

{ char *s2="I love China!",**s1=&s2;

char *s3,c,*s4="w";

s3=&c;

s2=s2+2;

printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1);

}

love China! H w l

四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)

1. 百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?

main( )

{ int hb,hm,hl,n=0;

for(hb=0;hb<=100;hb+= 【1)

for(hm=0;hm<=100-hb;hm+= 【2)

{ hl=100-hb- 【3;

if(hb/3+hm/2+2* 【3==100)

{ n++;

printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);

}

}

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

}

2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

#define N 10 /* 应将10改成11 */

char str[N];

main()

{ int i,flag;

for(flag=1;flag==1;) /* 本行多余*/

{ scanf("%s",str);

flag=0;

printf("\n");

}

sort(___【4

for(i=0;i

printf("%c",str[i]);

}

sort(char str[N])

{ int i,j;

char t;

for(j=1;j

for(i=0;(i

if(str[i]>str[i+1])

{ t=str[i];

___【5

____【6

}

}

C语言综合练习题2

一选择题(7分,每小题0.5分)

1.C语言源程序的基本单位是()。

A 过程

B 函数

C 子程序

D 标识符

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

main( )

{ int a=7,b=5;

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

}

A 5

B 1

C 0D不确定值

3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b--,a+b)的值是()。

A 7

B 8

C 1

D 2

4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534; a=(int)125.521%4; a=5<<2;

A 125,31,1

B 125,1,20

C 125,31,20

D 125.534,2,20

5.设有如下程序段,下面描述中正确的是()。

int k=10; while(k=0) k=k-1;

A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次

char s[20] = “abcd”;

char *sp =s;

sp++;

puts(strcat(sp,”ABCD”));

bcdABCD

7.在C语言程序中,以下说法正确的是()。

A函数的定义可以嵌套,但函数的调用不可以嵌套

B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套

D函数的定义和函数的调用都可以嵌套

8.以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

A 2

B 3

C 5

D 语法错误

9.以下程序的输出结果为()。

#define ADD(x) x*x

main( )

{ int a=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d",d);

}

A d=70

B d=80

C d=140

D d=700

10.已知职工记录描述如下,在VC++6.0中,系统为变量w分配()字节的空间。struct worker

{ int no;

char name[20];

char sex; /* 有问题32 */

union

{ int day; int month; int year;}birth;

} w;

A 29

B 20

C 25

D 6

11.设有以下定义,值为5的枚举常量是()。

enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

A tue

B sat

C fri

D thu

A p="abcd";

B a="abcd";

C *p="abcd";

D *a="abcd";

13.以下程序中调用scanf函数给变量a输入数值的方法是错误,其错误原因是

main()

{

int *p, *q,a,b;

p=&a;

printf(“input a: ”);

scanf(“%d”,*p);

}

A.*p表示的是指针变量p的地址

B.*p表示的是变量a,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量

14.C语言中的文件类型只有()。

A 索引文件和文本文件两种

B 文本文件一种

C 二进制文件一种

D ASCII码文件和二进制文件两种

二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)

1.在VC++6.0中,整型数据在内存中占2个字节。(×)

2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。(×)

3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。(√)4.函数的递归调用不过是一个函数直接或间接地调用它自身。(√)

5.函数strlen("ASDFG\n")的值是7。(×)

6.通过return语句,函数可以带回一个或一个以上的返回值。(×)

7.结构体类型只有一种。(×)

8.char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。(×)

9.若有定义:char *p(char a[10]);则p是函数名。(√)

10.用fopen("file","r+");打开的文件"file"可以进行修改。(√)

三写出下列程序的运行结果(10分,每小题2分)

1.float average (float *array)

{ int i;

float aver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

}

main( )

{ float score[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver; int i;

aver=average (score);

printf (“average score is %5.2f\n”,aver);

}

average score is 76.60

2.main( )

{ char a[5]={…A?,…B?,…C?,…D?,…E?},*p=a,**pa;

for(p=a;p

printf(“%2c”,*p);

printf(“\n”);p=a; /*后加p=a*/

printf(“%2c\n”,**(pa=&p));

}

A B C D E

A

3.下面程序的运行结果是

main()

{

int a[5][5],i,j,n=1;

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

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

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

printf(“The result is:\n”);

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

{

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

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

printf(“\n”);

}

}

1

6 7

11 12 13

16 17 18 19

21 22 23 24 25

4.main()

{ printf(“main( ) :%d\n”,fact(5));

fact(-5);

}

fact(int value)

{ int f;

if(value<0)

{ printf(“Arg error\n");

return(-1);

}

else if(value==1||value==0) f=1;

else f=value*fact(value-1)+1;

printf(“This called value=%d\n”,f);

return f;

}

This called value=1

This called value=3

This called value=10

This called value=41

This called value=206

main( ) :206

Arg error

5.main( )

{ int a=013,b=0x13,k=13;

char c=…\102?,d=…\r?;

printf(“a=%d\tb=%d\tk=%d\n”,a,b,k);

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

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

}

a=11 b=19 k=13

13B,d=

a=65 c=1

四阅读下列程序,在【】处填入适当内容,使程序完整(8分,每个空1分)1.有一个3*4矩阵,求其中的最大元素。

int max_value( 【1)

{ int i,j,max;

max=array[0][0];

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

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

if(array[i][j]>max)

max=array[i][j];

【2;

}

main( )

{ int a[3][4], i,j;

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

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

【3;

printf(“max value is %d\n”,max_value(a));

}

2.输入x、y两个整数,按先大后小的顺序输出x、y。

#include “stdio.h”

main( )

{ int x,y, *px,*py, 【4;

scanf(“%d%d”,&x,&y);

【5; 【6;

if(x

{ p=px; px=py; py=p; }

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

}

3.用选择排序法对任意10个整数按照由小到大排序。

main()

{ int a[11],i,j,k,t;

printf("Please input 10 numbers:\n");

for(i=1;i<11;i++) scanf("%d",&a[i]);

printf("\n");

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

{ 【7;

for(j=i+1; 【8;j++)

if(a[j]

if(k!=i)

{ t=a[k]; a[k]=a[i]; a[i]=t;}

}

printf("The sorted numbers:\n");

for(i=1;i<11;i++) printf("%d ",a[i]);

}

C语言综合练习题3

一选择题(7分,每小题0.5分)

1.设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

A 552

B 144

C 264

D -264

2.下列标识符中,不能作为合法的C用户定义标识符的是()。

A a3_b3

B void

C _123

D IF

3.下列整数值中,不正确的八进制或十六进制数值常量是()。

A 0xcd

B -017

C -ox123

D 0xfdc

4.若给定条件表达式(M)?(a++):(a--),则其中表达式M和()等价。

A M==0

B M=1

C M!=1

D M!=0

5.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为()。

A 只能是逻辑表达式B只能是关系表达式

C 只能是逻辑表达式或关系表达式D可以是任意表达式

main( )

{ char c;

int i;

for(i=65;i<68;i++)

{ c=i+32;

switch(c)

{ case …a?:printf("%c,",c);break;

case …b?:case …e?:printf("ok,");

default: printf("end");

}

}

}

A a,ok,end

B a,ok,endend

C a,ok,end,end

D a,ok,ok

7.数组名作为实参数传递给函数时,数组名被处理为()。

A 该数组的长度

B 该数组的元素个数

C 该数组的首地址

D 该数组中各元素的值

8.关于return语句,下列正确的说法是()。

A 可以在同一函数中出现多次

B 在主函数中不能出现

C 必须在每个函数中出现

D 只能在除主函数之外的函数中出现一次

9.以下程序的输出结果为()。

#define A 3

#define B(a) (A+1)*a

main()

{ int x;

x=3*A+B(7);

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

}

A x=93

B x=37

C x=60

D x=90

10.以下叙述中正确的是

A.在程序的一行上可以出现多个有效的预处理命令行

B.使用带参的宏时,参数的类型应与宏定义时一致

C.宏替换不占用运行时间,只占编译时间

#define C R 045

11.以下定义结构体类型st1,其中正确的是()。

A typedef struct student

{ int num; int age; }STD;

STD st1;

B struct st1{int num;int age;}s;

C struct { int num; float age;}st1;

D struct st1 {int num; int age; }

12.若有下面的变量定义,以下语句中合法的是()。

int i,a[10],*p;

A p=a+2;

B p=a[5];

C p=a[2]+2;

D p=&(i+2);

13.若有以下定义和语句,则值为12的表达式是()。

/*题有错误*/

struct wc{ int a;int *b;}*p;

int x0[]={11,12},x1[]={31,32};

static struct wc x[2]={100,x0,300,x1};

p=x;

A *++p->b

B ++p->a

C p->b

D *(p++)->b

14.要打开一个已存在的非空文件“file”用于修改,选择正确的语句()。

A fp=fopen("file","r");

B fp=fopen("file","w");

C fp=fopen("file","r+");

D fp=fopen("file","w+");

二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)

1.在VC++6.0中,实型数据在内存中占4个字节。(×)

2.若有形参定义:int a[10];则a++是合法的表达式。(√)

3.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。(×)

4.函数的递归调用不过是一个函数直接地调用它自身。(X)

5.定义在main函数后的任何函数都需在main中进行函数声明。(×)

6.若有定义:int a;则scanf(“%d",a);可以给变量a赋值。(×)

7.任何数组在使用前必须先定义。(对)

8.在int *p;和语句printf(“%d”, *p);中的*p含义相同。(×)

9.共用体变量的各个成员所占内存单元的地址相同。(√)

10.在使用缓冲文件系统时,与文件输入和输出相关的数据都先送到缓冲区中。(√)

1.main( )

{ char c1=…A?,c2=…\144?,c3=…\x44?,c=0xf5,x=13,a; int i=0122,j=0xa4;

printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j);

i=-34;

j=20;

a=c^x<<2;

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

}

c1=A,c4=d c5=D

82,164

-14,80,4

c=-3

a=-63

2.main()

{

int x,y=1,z=10;

if(y!=0) x=5;

printf(“x=%d\t”,x);

x=1;

if(z<0)

if(y>0) x=3;

else x=5;

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

if(z=y<0) x=3;

else if(y==0) x=5;

else x=7;

printf(“x=%d\t”,x);

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

x=5 x=1

x=7 z=0

3.main( )

{ char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0;

while(s[++i]!=…\0?)

t[i]=s[i];

t[i]=0;

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

printf(“string t:%s\n”,t);

}

string s:I like it.

string t:A like it.

4.int i=5;

main( )

{ int i=3;

{ int i=10;

i++;

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

}

f1( );

i+=1;

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

}

int f1( )

{ i=i+1;

return(i);

}

11

4

5.以下程序的输出结果为

main()

short i;

i=-4;

printf(“\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i);

}

i:dec=-4,oct=37777777774,hex=fffffffc,unsigned=4294967292

四阅读下列程序,在【】处填入适当内容,使程序完整(8分,每个空1分)1.用冒泡法对任意10个整数排序。

main( )

{ int a[11],i,j,t;

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

scanf("%d",&a[i]);

printf("\n");

for(i=1; 【1;i++)

for(j=1; 【2;j++)

if(a[j+1]>a[j])

{ t=a[j]; 【3; 【4;}

printf("The sorted numbers:\n");

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

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

printf(“\n”);

}

2.求100~200间的素数。

【5】

#include《math.h

main( )

{ int m,flag;

for(m=101;m<=200;m+=2)

{ flag=prime(m);

if( 【6

}

}

prime( 【7)

{

int i,k,flag;

k=sqrt(a);

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

if(a%i==0)

;

if(i==k+1) flag=1;

else flag=0;

}

综合练习题4

一填空题(20分)

1.C语言表达式5>2>7>8 的值是(。

2.当执行完以下语句后,变量a的值为(),d的值为(),e的值为()。

a=6; b=++a; c=--a; d=a++; e=a--;

3)。

char a=111; a=a^00; printf(“%d %o\n”,a,a);

4.a数组定义char a[3]; 按照内存排列顺序,a数组中的所有元素是()。

5.设有以下宏定义,则执行赋值语句a=PP+20;(a为int型变量)后,a的值是()。

#define PR 8

#define PP PR*40

6))。

7.C数据文件可以分为两种类型,它们是()文件和()文件。

8.若有char a[3]=“as”;则*a=(…a?),*(a+2)=(…\0?)。

二判断对错(15分,每题1分。对的划“√”,错的划“×”)

1.。()

2.表达式1/4+2.75的值是3。(×)

4.函数若无返回值,则它一定无形参。(×)

5.C语言只能处理文本文件和二进制文件。(√)

三选择题(20分,每题2分)

1.a,b为整形变量,二者均不为0,以下关系表达式中恒成立的是()。

(A) a*b/a*b==1 (B) a/b*b/a==1

(C) a/b*b+a%b==a (D) a/b*b==a

2.C语言源程序的基本单位是()。

(A) 过程(B) 函数(C) 子程序(D) 标识符

3.以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

(A) 2(B) 3 (C) 5 (D) 语法错误

4.以下的for 循环()。

for(x=0,y=0;(y!=123)&&(x<4);x++) ;

(A) 执行3 次(B) 执行4 次

(C) 循环次数不定(D) 是无限循环

5.以下程序的输出结果为()。

#define N 2

#define M N+2

#define CUBE(x) (x*x*x)

#include "stdio.h"

main( )

{ int i=M;

i=CUBE(i);

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

}

(A) 17 (B) 64 (C) 125 (D) 53

6.以下程序的输出结果为()。

main( )

{ int i=010,j=10,*pi,*pj;

pi=&i; pj=&j;

printf("%d.%d\n",*pi,*pj); /* . 应该为,*/

}

7.设有程序段/*本题晦涩*/

t=0;

while(printf(“*”))

{

t++;

if(t<3) break;

}

下面叙述正确的是

A.其中控制循环表达式与0 等价

B. 其中控制循环表达式与‘0’等价

C.其中控制循环表达式不合法的

D.以上说法都不对

8.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。

(A) fp=fopen("file","r"); (B) fp=fopen("file","w");

(C) fp=fopen("file","r+");(D) fp=fopen("file","w+");

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

main()

{ char s1[20]=“abc”,s2[20]=“123”;

if(strcmp(s1,s2)>0) printf(“%s\n”,s1)); /* 多一个括号*/

else printf(“%s\n”,s2);

}

(A) abc(B) 123 (C) abc123 (D) 123abc

10.已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()。

struct worker

{ int no; char name[20]; char sex;

struct { int day; int month; int year;}birth;

};

struct worker w;

(A) day=25;month=10;year=1993;

(B) w.birth.day=25; w.birth.month=10; w.birth.year=1993;

(C) w.day=25; w.month=10; w.year=1993;

(D) birth.day=25; birth.month=10; birth.year=1993;

四写出下列程序的运行结果(25分,每题5分)

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】

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.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

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语言综合习题及答案

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5.C程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C)-8e1.0 D)-80.0e 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】 A)float B)long C)int D)double 10. 以下关于函数叙述中,错误的是【D】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

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语言综合练习题及问题详解

模拟试题一 一、选择题(本大题30分,每小题2分) 1.下列说确的是。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。 A)整型实型字符型 B)整型数组指针 C)数组结构体共用体 D)指针逻辑型空类型 3.若有说明语句:char c= ‘\64’ ; 则变量C包含:。 A)1个字符 B)2个字符 C)3个字符 D)说明不合法,C值不确定 4.设有如下定义和执行语句,其输出结果为:。 int a=3,b=3; a = -- b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 3 5.C语言中,运算对象必须是整型数的运算符是。 A)% B)\ C)% 和 \ D)** 6.能正确表示x的取值围在[0,100]和[-10,-5]的表达式是。 A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100) D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 7.程序段如下 int k=0; while(k++<=2); printf("last=%d\n",k); 则执行结果是last= 。 A)2 B)3 C)4 D)无结果 8.下面有关for循环的正确描述是。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。

精选-C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=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 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

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语言综合习题及答案

C语言综合习题及答案 Prepared on 24 November 2020

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C) D) 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

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.1 选择题 1. 以下不是C 语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C 语言标识符的是() A .abc123 B.C._123_ D._ok 3. 正确的C 语言标识符是()。 A ._buy_2 B .2_buy C._buy D .buy 4. 请选出可用作 C 语言用户标识符的一组标识符()。 A .void B.a3_b3 C.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.w hile D .character 7. 是 C 语言提供的合法关键字的是()。 A .Float B.signed C.integer D.C har 8. 以下不能定义为用户标示符的是()。

A .scanf B.Void C._3com_ D.int 9. 一个C 程序是由()。 A. —个主程序和若干子程序组成 B. —个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 10. C 语言程序的基本单位是()。 A ?程序行 B ?语句 C ?函数 D .字符 11. 下列说法中,错误的是()。 A ?每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B ?每个函数都有一个函数头和一个函数体,主函数也不例外 C ?主函数只能调用用户函数或系统函数,用户函数可以相互调用 D ?程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 A . C语言程序总是从第一个定义的函数开始执行 B ?在C语言程序中,要调用的函数必须在main()函数中定义 C.C 语言程序总是从main()函数开始执行 D . C语言程序中的main()函数必须放在程序的开始部分 13. C 编译程序是()。 A.C 程序的机器语言版本 B .一组机器语言指令 C ?将C源程序编译成目标程序

相关主题
文本预览
相关文档 最新文档