文档库 最新最全的文档下载
当前位置:文档库 › C语言综合练习(附答案)

C语言综合练习(附答案)

C语言综合练习(附答案)
C语言综合练习(附答案)

一、选择

1.在C语言中运算对象必须是整型的运算符是

A %

B !

C /

D *

2. 有以下程序

#include

main(){

int x;

scanf(“%d”,&x);

if(x<=3);

else if(x!=10)

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

}

程序运行时,输入的值在哪个范围才会有输出结果____________ 。

A)不等于10的整数 B)大于3且不等于10的整数

C) 大于3或等于10的整数 D)小于3的整数

3. 下列定义数组的语句中,正确的是__________。

A)int N=10;int x[N]; B)#define N 10

int x[N];

C) int x[0..10]; D) int x[];

4. 以下程序运行后的输出结果是_______________。

#include

main()

{

int m=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf(“%d,%d,%d,%d\n”,m,n,*p,*q);

}

A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2

5. C语句x*=y+2;还可以写成

A x=x*y+2;

B x=2+y*x;

C x=x*(y+2);

D x=y+2*x;

6. 以下程序运行后的输出结果是________________。

#include

main(){

int a=1,b=0;

if(!a) b++;

else if(a==0) if(a) b+=2;

else b+=3;

printf(“%d\n”,b)

}

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

7. 若要定义一个具有5个元素的整形数组,以下错误的定义语句是__________。

A)int a[5]={0}; B)int b[] = {0,0,0,0,0};

C) int c[2+3] ; D)int i=5,d[i];

8. 设有float x;则x是____变量。

A 整型 B实型

C 字符型

D 长型

9. 若有定义:float x=1.5;int a=1,b=3,c=2; 则正确的switch语句是___________。

A)switch(x)

{

case 1.0:printf(“*\n”);

case 2.0:printf(“**\”);

}

B)switch((int)x);

{

case 1:printf(“*\n”);

case 2:printf(“**\n”);

}

C) switch(a+b)

{

case 1:printf(“*\n”);

case 2+1:printf(“**\n”);

}

D) switch(a+b)

{

case c:printf(“*\n”);

case 2:printf(“**\n”);

}

10. 以下程序运行后的输出结果是__________。

#include

main()

{ int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

for(i=0;i<5;i++)s=s+a[b[i]];

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

}

A) 6 B)10 C)11 D)15

11. 若有float x,y;则以下不合法的语句是

A ++x;

B y=(x%2)/10;

C x*=y+8;

D x=y=10;

12. 以下程序运行后的输出结果是______________。

#include

main(){

int a=1,b=2;

while(a<6){b+=a;a+=2;b%=10;}

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

}

A)5,11 B)7,1 C)7,11 D)6,1

13. 下面是有关C语言字符数组的描述,其中错误的是__________。

A)不可以用赋值语句给字符数组名赋字符串

B)可以用输入语句把字符串整体输入给字符数组

C)字符数组中的内容不一定是字符串

D)字符数组只能存放字符串

14. turbo c中int类型变量所占字节数是

A 1

B 2

C 3

D 4

15. 以下程序运行后的输出结果是__________。

#include

main(){

int y=10;

while(y--);

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

}

A)y=0 B)y=-1 C)y=1 D)while构成无限循环

16. 以下程序运行后的输出结果是________________。

#include

void fun(int p)

{ int d=2;

p=d++;printf(“%d”,p);

}

main()

{ int a=1;

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

}

A)32 B)12 C)21 D)22

17. 正确的字符串常量是

A“ABCD”B{ABCD}

C ‘ABCD’

D ABCD

18. 设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是________。

A)n=0;while((ch=getchar())!=”\n”)n++;

B)n=0;while(getchar()!=”\n”)n++;

C)for(n=0;getchar()!=”\n”;n++);

D)n=0;for(ch=getchar()!=”\n”;n++);

19. 下面的函数调用语句中func函数的实参个数是_____________。

func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));

A)3 B)4 C) 5 D)8

20. 表达式(int)2.5的值是

A 2

B 3

C 0

D 2.5

21. 以下程序段中的变量已正确定义,则程序段的输出结果是__________。

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

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

printf(“*”);

A)* * * * * * B)* * * * C)* * D)*

22. 以下程序运行后的结果是___________。

#include

int fun()

{ static int x=1;

x+=1;return x;

}

main()

{

int i,s=1;

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

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

}

A)11 B)21 C)6 D)120

23. 逗号表达式"(a=3*5,a*4),a+15"的值是

A 15

B 60

C 30

D 不确定

24. 以下叙述中正确的是______________。

A) break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C)break语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同

25. 若函数的形参为一维数组,则下列说法中正确的是

A 调用函数时的对应实参必为数组名。

B形参数组可以不指定大小。

C 形参数组的元素个数必须等于实参数组的元素个数。

D 形参数组的元素个数必须多于实参数组的元素个数。

26. 以下叙述中正确的是

A 输入项可以是一个实型常量,如: scanf("%f",3.5);

B 只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf("a=%d ,b=%d")''

C 当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

scanf("%4.2f",&d);

D当输入数据时,必须指明变量地址,例如: scanf("%f",&f);

27. 有程序段:

int n=1;

do{ n=++n*5;}

while(n=10);

则此循环的循环体( )

A: 执行1次 B: 执行2次 C: 不执行D:执行无限次

28. 在函数的说明和定义时若没有指出函数的类型,则

A系统自动地认为函数的类型为整型。

B 系统自动地认为函数的类型为字符型。

C 系统自动地认为函数的类型为实型。

D 编译时会出错。

29. 若有以下定义和语句:

int u=010,v=0x10,w=10;

printf("%d,%d,%d\n",u,v,w);

则输出结果是:

A 8,16,10

B 10,10,10

C 8,8,10

D 8,10,10

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

main()

{ int i;

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

{

if(i%2) printf(“*”);

else continue;

printf(“#”);

}

printf(“$”);

}

A: *#*#*#$ B: *#*#$ C: #*#*#*$D: #*#*$

二、填空题

1. C语言源程序文件的后缀是_.C___经过编译后生成文件的后缀是_.Obj___,经过链接后生成文件的后缀是.EXE____.

2.函数直接或者间接地自己调用自己,被称为函数的递归调用。

3. 以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135,则输出531.请填空。

#include

main()

{ int n,s;

printf(“Enter a number:”);scanf(“%d”,&n);

printf(“Output:”);

do{ s=n%10;printf(“%d”,s);_ n/=10___;

}while(n!=0);

printf(“\n”);

}

4.在函数内部定义的只在本函数内有效的变量叫局部变量,在函数以外定义的

变量叫全局变量。

5. 以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其他以此类推。用#号结束输入,请填空。 #include

#include

main()

{

int num[26]={0},i;char c;

while(_c = getchar()_!=’#’)

if(isupper(c)) num[c-‘A’]+=__1__;

for(i=0;i<26;i++) printf(“%c:%d\n”,i+’A’,num[i]); }

三、读程序写结果

1.下面程序的运行结果是(a+b=9)//与3类似,但main函数未声明plus函数,错误int a=5; int b=7;

main()

{ int a=4,b=5,c;

c=plus(a,b);

printf(“a+b=%d”,c);

}

plus(int x,int y)

{ int z;

z=x+y;

return(z);

}

2.以下程序的输出结果是(9 8 7)

main()

{ int n=10;

while(n>7)

{n--;

printf(“%d”,n);

} }

3. 以下程序的输出结果是(a+b=9)

#include

int a=5;

int b=7;

int plus(int x,int y)

{

int z;

z=x+y;

return(z);

}

void main()

{

int a=4,b=5,c;

c=plus(a,b);

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

}

4. 以下程序的输出结果是(1,2,0)

main()

{

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

while(a

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

}

5. #include

main()

{ int i,j,sum;

for(i=3;i>=1;i--)

{

sum=0;

for(j=1;j<=i;j++)sum+=i*j;

}

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

}

四、编程题

1. 编一个程序。求出200-300之间的某些数,这些数应满足条件:它们个位、十位、百位之积为42、之和为12。

#include “stdio.h”

main( )

{ int i,j,k;

i=2;

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

{ k=0;

while(k<=9)

{ if (i*j*k==42&&i+j+k==12)

printf(“i=%d,j=%d,k=%d.\n”,i,j,k);

k++;

}

}

}

2. 编程判断输入的正整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。

#include

main()

{

int x;

printf(“please input an integar:”);

scanf("%d",&x);

if(x%5==0&&x%7==0) printf("yes\n");

else printf("no\n");

}

3. 从键盘输入5 学生的成绩至数组中,将最低分的成绩输出。

#include “stdio.h”

main()

{int i;

float a[5],min;

printf(“Please input score:\n”);

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

scanf(“%f”,&a[i]);

min=a[0];

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

if(a[i]

printf(“The min score is%f”,min);

}

2.已知字母A的ASCII码为65。以下程序运行后的输出结果是__67 G__ . main()

{ char a, b;

a='A'+'5'-'3'; b=a+'6'-'2' ;

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

大学C语言考试试题

C语言模拟试题 一、判断 1、关系运算符<= =与= =的优先级相同。(N ) 2、C语言的函数可以嵌套定义。(N ) 3、若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5, 则a=10,c=?A?,f=12.5.( Y ) 4、变量根据其作用域的范围可以分作局部变量和全局变量。( Y ) 5、#define和printf都不是C语句。( Y ) 6、Int I,*p=&I;是正确的C说明。( Y ) 7、结构体类型只有一种。( N ) 8、在Turbo C中,整形数据在内存中占2个字节。( N ) 9、一个include命令可以指定多个被包含的文件。( N ) 10、有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8).( Y ) 二、选择 2、C语言中,char类型数据占(A) A、1个字节 B、2个字节 C、4个字节 D、8个字节 3、已知x=43,ch=?A?,y=o;则表达式(x>=y&&ch1;i--) for(j=1;j

江苏大学大一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.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语言中,以 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 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

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语言总复习题--综合

综合练习 一、判断题 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语言期末考试试题

6.以下程序的输出结果为(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 9.以下程序的输出结果为(B)。 #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分,每小题2分) 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; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 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); } 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); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

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源程序是【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】 A)float B)long C)int D)double 10. 以下关于函数叙述中,错误的是【D】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

大学大一C语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是() for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); A).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );

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语言单元练习题 第一单元数据类型、表达式及顺序结 构练习题 一、选择题: 1、不合法的C语言整型常量是 D 。 A. –012 B. 0x35 C. 123L D. 8E2 2、不合法的C语言实型常量是 B 。 A. E3 B. .123 C. –6.2E4 D. 5.0 3、不合法的C字符常量是。 A. ′2′ B. ′\101′ C. ′AB′ D. ′ \n′ 4、下列四组选项中,均是不合法的用户标识符 的选项是。 A. W P_0 do B. b-a goto int C. float la0 _A D. -123 abc TEMP 5、定义三个变量a、b、c,并分别赋初值为5。能实现该功能的语句是。 A. int a=b=c=5; B. int a,b,c=5; C. int a=5,b=5,c=5; D. int a=5;b=5;c=5; 6、设有说明:char w;int x; float y;double z;则表达式w*x+z-y值的数据类型为。 A. float B. char C. int D. double 7、以下选项中不能用作C程序合法常量的是()。 A. 1.234 B. '123' C.123 D."\x7G" 8、以下选项中可用作C程序合法实数的是() A. .1e0 B.3.0e0.2 C.E9 D.9.12E 9、下列标识符中,不合法的用户标识符为()。 A. Pad B. CHAR C. a_10 D. a≠b 10、以下选项中能表示合法常量的是()。 A.整数:1,200 B.实数:1.5E2.0 C.字 符斜杠:‘\’ D.字符串:"\007" 11、以下选项中,能用作数据常量的是()。 A.o115 B. 0118 C.1.5e1.5 D. 115L 12、若a是数值类型,则逻辑表达式 (a==1)||(a!=1)的值是()。 A.1 B.0 C.2 D.3 13、若有定义语句:int x=10;,则表达式x-=x+x 的值为() A.-20 B.-10 C.0 D.10 14、表达式:(int)((double)9/2)-(9)%2的值是()。 A.0 B.3 C.4 D.5 15.int x=5, y=14;则表达式x+7/y+0.6 值为()。 A.7.1 B.5.6 C.6.6 D.6.1 16、有以下程序执行后的输出结果是()。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.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和 17、C语言中运算对象必需是整型的运算符是()。A./ B. % C.* D.+ 18、表达式3.6-5/2+1.2+5%2的值是()。A.4.3 B. 4.8 C. 3.3 D.3.8 19、能正确表示逻辑关系:"a≥8或a≤5" 的C 语言表达式是()。 A.a>=8 or a<=5 B.a>=5 | a<=8 C.a>=8 && a<=5 D.a>=8 || a<=5 20、C语言中,数字029 是一个()。 A.不合法数字 B.十进制数 C.八进制数 D.十六进制数 21、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。 A.k++ B.k+=1 C.++k D.k+1 22、以下选项中,合法的C语言数值常量是()。 A.028 B.'\12A' C.'\177’ D. N 23、C语言中运算符优先级最低的是()。 A.++ B. = C.- D.&& 24、有以下程序运行时,输入的值在哪个范围才会有输出结果()。 main(){ int x; scanf("%d",&x); if(x<=3) ; else if(x!=10) printf("%d\n",x); } A.不等于10的整数 B.大于3且不等于10的整数 C.大于3或等于10的整数 D.小于3的整数 25.以下选项中可用作C程序合法实数的是( ) A.1e0 B3.0e0.2 C.E9 D..12E 26.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( ) A.a=(b=4)=3; B.a=b=c+1; C.a=(b=4)+c; D.a=1+(b=c=4); 二、填空题:

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(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 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 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循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 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;

相关文档