C语言练习题1_第1页
C语言练习题1_第2页
C语言练习题1_第3页
C语言练习题1_第4页
C语言练习题1_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计习题一(注:若有错误,请及时反馈)1、以下选项中,能用作数据常量的是 。(C)(A) o115(B) 0118(C) 115L(D) 1.5e1.5【解析】:数据常量(数值常量):合法的整型常量十进制、八进制(前缀数0)和十六进制(前缀 0x/0X )的整数与长整数(数的末尾加小写字母l或大写字母L);合法的实型常量(小数(浮点)形式(包含数与小数点)和指数形式(正确形式:aE(e)+b或aE(e)-b,其中b必须是整数,a与b都不能省)2、以下叙述中错误的是 。(A)(A)使用三种基本结构构成的程序只能解决简单问题(B) C语言源程序经编译后生成后缀为.obj的目标程序(C)用

2、C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中(D)结构化程序由顺序、分支、循环三种基本结构组成3、以下叙述中错误的是 。 (A)A) C源程序可以直接由计算机执行B)结构化程序由顺序、分支、循环三种基本结构组成C) C语言是一种结构化程序设计语言D)结构化程序设计提倡模块化的设计方法【解析】结构化程序包括三大结构,顺序结构、选择结构和循环结构,并可以解决所有问 题。C源程序必须经过编译生成目标文件,然后经过连接生成可执行文件。4、流程图是描述算法的很好的工具,一般的流程图中由几种基本图形组成。其中输入输出框的图形是 (A)A)平行四边形B)长方形 C)椭圆型 D)菱

3、形【解析】算法可以用各种描述方法进行描述,目前最常用的有3种:伪代码、流程图和N-S结构图。传统的流程图由下图所示的几种基本图形组成。口一 0。止小笠民十曲帆HViM-it人独&整 |5、结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是 。(D) A)顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移B)选择结构是根据不同的条件执行不同分支中的语句C)循环结构是根据条件决定是否重复、重复执行多少次循环体语句D)三种基本结构不可以嵌套使用6、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是 。(D) (A)大写字母 (B)下划线(C)数字字符(D)

4、连接符【解析】:C语言合法的标识符是由数字09、26个英文字母(大小写均可)和下划线组成的,且第一个字符是字母或下划线。合法的用户标识符不能是C语言关键字。7、以下选项中,合法的一组(A) 0x8A10,000C语言数值常量是。(D)3.e5(B).1774e1.50abc(C) 028.5e-3-0xf(D)12.0Xa234.5e08、以下叙述中错误的是。(C)(A) C语言编写的源程序,其文件名后缀可以是.C(B) C语言编写的函数都可以作为一个独立的源程序文件( C ) C 语言编写的每个函数都可以进行独立的编译并执行( D )一个 C 语言程序只能有一个主函数【解析】 C 语言编写的

5、每个函数可以被独立编译,但是除主函数外不能独立执行。9 、 以下选项中不合法的标识符是 。 ( C )( A) printf ( B) FOR(C ) &&a( D) _00【解析】本题容易错的是printf 。如, printf 、 scanf 、 strcpy 、 main 等都为函数名,也称为预定义标识符,可以用作合法的标识符。C语言确定关键字不可做用户标识符。10 、 设有定义: int x=2; ,以下表达式中,值不为 6 的是 ( D )( A) x*=(1+x)( B ) x*=x+1( C ) x+,2*x( D ) 2*x, x+=2【解析】(A) x*=(1

6、+x)等价于x=x*(1+x),(B)与(A)等价。(C)与(D)都是逗号表达式。逗号表达式的计算原则,从左自右依次计算,则最后一个表达式的值为整个逗号表达式和值。所以(C )先计算x+,x 的值为 3 ,再计算 2*x 的值,表达式x+,2*x 的最终值为6。(D)先计算2*x的值为6,再计算x+=2的值,x的值为4,表达式2*x, x+=2的 值为 4.11 、 若有定义语句: int x=10; ,则表达式x-=x+x 的值为 (D)(A) 0(B) 10(C) -20(D) -10【解析】 x-=x+x 等价于 x=x-(x+x)12 、若有定义语句:int a=10; double

7、b=3.14;,则表达式12.2+a+b值的类型是 。( C)( A) char ( B ) int (C) double ( D) float【解析】本题考查数据类型的自动转换,C语言语法规定,当不同的变量相加时按最长的变量对齐,即转换优先级为: char < int < float < double 。13 、 以下选项中可用作C 程序合法实数的是 ( D)(A) E9(B) 9.12E(C) 3.0e1.2(D) .1e014 、 以下叙述中正确的是 ( B )( A ) C 语言程序中的注释必须与语句写在同一行( B ) 简单 C 语句必须以分号结束( C ) C 语

8、句必须在一行内写完( D ) C 程序中的每一行只能写一条语句15 、 若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是 ( A )( A) x=y=5;( B ) x=5=4+1;( C) x+n=i;( D ) x=n%2.5;【解析】 :正确的赋值表达式要点,赋值号的左侧必须是单一的变量。赋值号的右侧可以是任意表达式,但其表达式必须是C 语言中合法的表达式。选项 B 中 5=4+1 ,左侧为数非法。选项 C 左侧为 x+n 为算术表达式,非法。选项D 算术运算符%两侧的运算符必须为整型。16 、 设有定义int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是 ( B

9、 )(A)+k(B) k+(C) k+1( D) k+=117 、 若变量已正确定义并赋值,以下不能构成C 语句的选项是 ( C )A) B+; B) A=a+b; C) a=a+b D) a=b+;【解析】 C 语言规定 ,C 语句必须以分号"" 结束?没有分号,称为表达式。18 、 若有定义语句int a=3,b=2,c=1;以下选项中错误的赋值表达式是 (A)(A) a=(b=4)=3;(B) a=1+(b=c=4);(C) a=(b=4)+c;(D) a=b=c+1;【解析】:选项A中(b=4)=3出错,赋值号左侧(b=4)是赋值表达式,不是单一变量。19、 C语言

10、源程序名的后缀是 (A)(A).c(B).cp(C).obj(D).exe20、 表达式a+=a-=a=9 的值是 (A)(A)0(B)-9。18(D)9【解析】:计算步骤如下图,计算过程中注意a的值也在发生变化。a+=3-=a=921、 若有定义语句: (D)int x=12 , y=8 , z;在其后执行语句z=0.9+x/y; 则z的值为(A) 2.4(B) 2。 1.9(D) 1【解析】要点:计算表达式值时的优先级,先计算 x/y的值,并且x与y都是int型,所以 整除整必得整。然后计算 0.9+1的值。22、 若函数中有定义语句:int k;,则。( B)(A)系统将自动给k赋初值0

11、(B) 这时k中的值无定义(C)系统将自动给k赋初值-1(D)这时k中无任何值【解析】用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中存放任何值,此时变量中的值是无确定的,称变量值"无意义”。23、 有以下程序#include <stdio.h> main() int a=0,b=0;b=20;printf("a+b=%d ,a+b);程序运行后的输出结果 (D)(A) 20(B) 0(C) a+b=0(D) a+b=20【解析】printf("a+b=%ch” ,a+b);语句中,普通字符"a+b=”需原样输出。24、

12、 有以下程序#include <stdio.h> main() int a;a = (int)1.99*3; printf("%dn", a);程序的运行结果是(A)A) 3B) 5 C) 6 D)结果不确定【解析】浮点数1.99被强制转换成1,执行语句a= (int) 1.99*3;计算得a=1*3=3 。电气卓越1601/02版权所有3 / 7C 语言程序设计习题一25、 有以下程序#include <stdio.h>main() int a;a = (int)1.99*3;printf("%dn", a);程序的运行结果是(

13、A)A) 3B) 5 C) 6 D)结果不确定26、 若有以下程序#include <stdio.h>main() int b=10,a=-11;a%=b%=4;printf( "%d %d ,a,b);则程序的输出结果是 (B)(A) 1 2(B) -1 2。 1 -2(D) -1 -227、 关于C语言的变量,以下叙述中错误的是 (D)(A)由三条下划线构成的符号名是合法的变量名(B)所谓变量是指在程序运行过程中其值可以被改变的量(C)程序中用到的所有变量都必须先定义后才能使用(D)变量所占的存储单元地址可以随时改变28、 若有以下程序(D)#include <

14、stdio.h>main()int a=-11,b=10;a/=b/=4;printf( "%d %d ,a,b);(A) 4 -3(B) 5 -3(C) -1 -2(D) -5 229、 不能正确表示数学式ab的表达式是 (D)C(A) a*b/c(B) a*(b/c)(C) a/c*b(D) a/b*c30、 C语言中double类型数据占字节数为 (B)(A) 12(B) 8(C) 4(D) 1631、 有以下程序#include<stdio.h>main() int x=011;printf("%dn" , +x);程序运行后的输出结果是

15、 ( C)( A)12(B)11( C)10(D)9【解析】 x=011 表示把八进制的 11赋值给变量x ,因此x 的值为十进制的9 ,程序运行的结果输出变量x 自加运算后的十进制值,即10。32 、 输出语句: printf("%dn",11+011); 的输出结果是 。 (A)A) 20 B) 22 C) 022 D) 021【解析】printf("%dn",11+011) 中,11为十进制,011为八进制形式,打印格式d表示十进制格式输出,因此,先将八进制数转化为十进制, 011(8)=81*1+1*80=9, 相当于printf("%

16、dn",11+9) ,故答案为 20 。33 、C 语言程序中,运算对象必须是整型数的运算符是 (A)(A)%( B) /( C) *( D) &&34 、#include <stdio.h>main() int sum,pad,pAd;sum=pad=5;pAd=+sum,pAd+,+pad;printf(“ %n”d ,pad);程序的输出结果是 ( D )(A) 7(B) 5(C) 8(D) 635 、 若变量已正确定义为 int 型,要通过语句scanf(“ %d,%d,%d” ,&a,&b,&c);给 a 赋值 1 、给

17、b 赋值2 、给c 赋值3, 以下输入形式中语法错误的是(注: 代表一个空格符) ( B)(A) 1,2,3<车>(B) 1口2口3相车(C) 1,2,3< 回车 >( D) 1, 2, 回车 3<>【解析】 : scanf 函数中第一参数,即双引号中若含有普通字符,普通字符必须原样输入。36 、 若有定义int a;float b;double c;程序运行时输入:3 4 5< 回车 >能把 3 输入给变量a、 4 输入给变量b、 5 输入给变量c 的语句是 (D)(A)scanf( “ %d%f%” f ,&a,&b,&

18、;c);(B)scanf( “ %d%lf%lf” ,&a,&b,&c);(C)scanf( “ %lf%lf%lf ” ,&a,&b,&c)(D)scanf( “ %d%f%lf” ,&a,&b,&c);37、有以下程序:#include <stdio.h> main() int a=1, b=0;printf("%d , ", b=a+b);printf("%dn" , a=2*b);程序运行后的输出结果是 。(D)(A)0,0(B)1,0(C)3,2(D)1,2【解析】执行第一个printf语句时,b=a+b=1 ,所以输出1 ,执行第二个printf语句时,a=2* b=2,所以输出结果为2。38、 若有定义:int a,b;通过语句scanf( "%d;%d ,&a,&b);能把整数3赋值给变量a, 5赋值给变量b的输入数据是 (D)(A) 35(B) 3 5。 3,5(D) 3;539、 程序段:int x=12;double y=3.141593;pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论