Job - C语言作业题[1]

C语言练习题一

(一)

1. ___D__是合法的用户自定义标识符。

A、 b-b B、int C、 D、 _isw

2. C 语言程序中可以对程序进行注释,注释部分必须用符号___C__括起来。 A、?{? 和?}? B、?[?和?]? C、“/*”和”*/” D、“*/”和”/*” 3. C语言源程序文件经过编译连接之后生成一个后缀为___C___的文件。

A.”.c” B.“.obj” C.“.exe” D.“.bas” 4. C 语言程序的三种基本结构是顺序结构、选择结构和___C___结构。 A.递归 B.转移 C.循环 D.嵌套 5. 下面C语言的标识符中,哪个是不合法____B______。 A、_total B、Large#Tall C、int_1 D、_while 6. 标准C源程序的文件扩展名是__A___。 A.”.c” B.“.obj” C.“.exe”

D.“.cpp”

7. 结构化程序由三种基本结构组成,三种基本结构组成的算法___B___..。 A.可以完成任何复杂的任务 B.只能完成部分复杂的任务 C.只能完成符合结构化的任务 D.只能完成一些简单的任务

8. 若a是基本整型变量,c是单精度实型变量,输入语句___D___是错误的。 A.scanf(\ B.scanf(\ C.scanf(\ D.scanf(\

9. 设变量定义为“int a, b;”,执行下列语句时,输入___B__,则a和b的值都是10。 scanf(\;

A.10 10 B.10, 10 C.a=10 b=10 D.a=10, b=10 10. C语言源程序文件经过编译之后生成一个后缀为__B____的文件。 A.”.c” B.“.obj” C.“.exe” D.“.bas” 11. 表达式___C___的值是0。 A.3%5 B.3/5.0 C.3/5 的输入。

A.203040 B.20 30 40

D.3<5

12. 若变量已正确定义,执行语句scanf(\;时,___B___是正确

C.20, 30 40

D.20, 30,40

13. 程序段___D___的功能是将变量u、s中的最大值赋给变量t。 A.if (u>s) t=u; t=s; B.t=u; if (t>s) t=s; C.if (u>s) t=s; else t=u; D.t=s; if (u>t) t=u;

(二)

单选题

1.执行语句for(i=0;i<=10;i=i+3); 后,变量i的值是:B

A. 13 B. 12 C. 11 D. 10

2.设有double x,s;且s=0,在执行语句“for(x=0; x < 1; x=x+0.3) s=s+x;”后,变量x的值为 B 。

A、 不可能大于1 B、 不可能大于1.3 C、 等于1.3 D、 可以远大于1 3.若 x 是浮点型变量,表达式 (x=10/4) 的值是___A__ 。

A.2.5 B.2.0 C.3 D.2 4.以下选项中正确的实型常量是____C____。

A. 0 B. -10 C. 0.19 D. 1.9×102 5.C语言中运算对象必须是整型的运算符是___A____。

A. % B. / C. + D. *

判断题

1.在C源程序中将语句“if(x==5) y++;”误写作“if(x=5) y++;”,将导致程序不能运行。F 2.C的double类型数据可以精确表示任何实数。F

3.若x的当前值为5, 执行语句“if(x=3) x=x+5;”后,x的值依然是5。F 4.执行循环语句“for(i=1;i<10;i=i+2) s+=i;”后,i的当前值为11。T 5.在 C 程序中,A 和 a 代表不同的变量。T

填空题

执行下列程序段后,sum的值是___10___。

(三)

(一)选择题

1.已知字符 ?a? 的ASCII码为 97 ,执行下列语句的输出是__D___。

printf (\

A、98, b B、语句不合法 C、98, 99 D、 98, c 2.设x,y,t为整型变量,且已赋值。下列程序段中,( C )在实现两个变量x和y的交换可能会出错。

A、{ t=x; x=y; y=t; } B、 {x=x+y; y=x-y; x=x-y; } C、{ x=x*y; y=x/y; x=x/y; } D、{ x=x-y; y=x+y; x=y-x; }

3. 执行语句“s=0; for(k=1; s<20||k<=12; k=k+2) s=s+k;”后,s、k的值为( B )。 A、 25、9 B、 25、11 C、 36、11 D、 36、13 4. 若有如下程序,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

s=a;

for(b=1;b<=c;b++) s=s+1;

则与上述程序段功能等价的赋值语句是( B )

A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c;

5.判断i和j至少有一个值为非0的表达式是__B___。

A、 i!=0 && j!=0 B、i!=0||j!=0 C、!(i==0 || j==0) D、i&&j (二)判断题

1.表示数学式3

3.与float型数据相比,double型数据的精度高,取值范围大。T (三)填空题

2.下列程序段的输出是___7, 9___。

int k; float s=0; for (k=0; k < 7; k ++) s =s+ k/2;

printf(\

3. 设ch是字符型变量,判断ch为英文字母的表达式是___ch>=65&&ch<=90||ch>=97&&ch<=122___。

4. 计算下列分段函数的 if 语句是___if(x>0)y=1;else if(x<0)y=-1;else y=0;___。

1 x>0 y= 0 x=0 -1 x<0

(四)

单选题

1.对于if语句,以下( B )是正确的。

A、if语句可以嵌套,嵌套时的else总与它最近的没有else的if相匹配 B、如果有if(a>=3){if(a==3)y=1;}else y=10;,则else与第一个if匹配 C、如果有if(a>=3){if(a==3)y=1;}else y=10;,则else与第二个if匹配 D、if语句不可以嵌套

2.若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是:___D___ A、 B、 swich(a+b); switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break;

}

C、 D、 switch a switch(a-b) {case c1 :y=a-b; break {default:y=a*b;break; case c2: x=a*d; break case 3:case 4:x=a+b;break;

default:x=a+b; }

3.下列程序段的输出结果是 B 。 int k=1; switch(k) {

case 1: putchar('P'); case 2:

case 3: putchar('Q'); break; case 4: putchar('R'); default: putchar('S');

case 10:case 11:y=a-b;break; }

}

A、P B、PQ C、PQR D、PQRS

4.只有当输入的数据满足1<=month<=12时,循环语句 C 才能正常退出。

A.do{

scanf(\%d\, &month);

} while (month >= 1 || month <= 12);

B.do{

scanf(\%d\, &month);

} while (month >= 1 && month <= 12);

C.do{

scanf(\%d\, &month);

} while (month < 1 || month > 12);

D.do{

scanf(\%d\, &month);

} while (month <= 1 || month >= 12);

判断题

1. while循环有可能循环体一次也不执行。T

2 int x=0;while(1){x++;}存在语法错误,程序不会执行。F 3 int x=0;for(;;){x++;}是死循环程序。T

4.do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。T

填空题

1.能正确表示条件“x取值在[1,10]和[200,210]范围内”的表达式为___x>=1&&x<=10||x>=200&&x<=210___。

2.判断char型变量ch是否存放着数字字符的表达式为___ch>='0'&&ch<='9'___。 3.表示关系x≥y≥z的表达式是___y<=x&&y>=z___。

4.假定变量已正确定义,当a=1,b=3,c=5,d=4,x=0时,执行以下程序后,x的值是__A___。 if(a>b) if(cc) if(b

A)7 B)2 C)3 D)6

5.执行下列程序后的输出结果是__a=2,b=1____。 main()

{int x=1,y=0,a=0,b=0;

switch(x){case 1:switch(y) {case 0:a++;break; case 1:b++;break; }

case 2:a++;b++;break; case 3:a++;b++;} printf(\}

6.设有程序段:int i=10;while(i==0)i--;则下面描述中正确的是___C___。 A)while循环执行10次 B)循环是无限循环 C)循环体一次也不执行 D)循环体执行一遍 7.下列程序的输出结果是_k=0,m=5_____。 #include main()

{int k=0,m=0,i,j;

for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k=k-j;} m=i+j;

printf(\}

8.下列程序中,判断i>j共执行了__5___次。 #include main()

{int i=0,j=10,k=2,s=0; for(;;){ i=i+k;

if(i>j){ printf(\ s=s+i; } }

9.以下程序的运行结果是___32___。 #include main()

{int i=0,a=0; while(i<20){

for(;;){if(i==0)break;else i--;} i=i+11; a=a+i; }

printf(\}

10.以下程序的运行结果是_1,3,2_____。

#include main()

{int i,m=0,n=0,k=0; for(i=9;i<=11;i++) switch(i/10){

case 0:m++;n++;break; default :k++;n++; case 10:n++;break; }

printf(\}

11.以下程序的运行结果是___17___。 #include main() {int x=15;

while(x>10&&x<50){x++;if(x/3){x++;break;}else continue;} printf(\}

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4