ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:56KB ,
资源ID:497939      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-497939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷12及答案与解析.doc)为本站会员(刘芸)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷12及答案与解析.doc

1、国家二级 C语言机试( C语言程序设计)模拟试卷 12及答案与解析 一、选择题 1 以下能正确定义且赋初值的语句是 ( A) int n1 n2 10; ( B) char c 32; ( C) float f f 1 1; ( D) double x 12 3E2 5; 2 设有定义: int n1 0, n2, *p=n2, *q n1;,以下赋值语句中与 n2 n1;语句等价的是 ( A) *p *q; ( B) p q; ( C) *p n1; ( D) p *q; 3 以下函数的功能是:通过键盘输入数据,为数组中的 所有元素赋值。 #include #define N 10 void

2、 fun(int xN) int i 0; while(i N)scanf(“ d“,_); 在程序中下划线处应填入的是 ( A) x i ( B) xi 1 ( C) x (i ) ( D) x i 4 fun函数的功能是:通过键盘输入给 x所指的整型数组所有元素赋值。在下划线处应填写的是 #include #define N 5 Void fun(int xN) int m; for(m N 1; m 0; m )scanf(“ d“,_); ( A) x m ( B) xm 1 ( C) x (m ) ( D) x m 5 以下选项中,合法的是 ( A) char name10; nam

3、e “char“; ( B) char strl5 “pass“, str26; str2 str1; ( C) char str3 d,e,b,u,g, 0; ( D) char str4; str4 “hello world“; 6 以下叙述中正确的是 ( A)赋值语句是一种执行语句,必须放在函数的可执行部分 ( B) scanf和 printf是 C语言提供的输入和输出语句 ( C)由 printf输出的数据都隐含左对齐 ( D)由 printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的 7 有以下程序 main() int a 3: a a a*a; printf

4、(“ d n“, a); 程序的输出结果是 ( A) 9 ( B) 3 ( C) 12 ( D) 0 8 设有定义语 句 int x6 2, 4, 6, 8, 5, 7),*p x, i; 要求依次输出 x数组 6个元素中的值不能完成此操作的语句是 ( A) for(i 0; i 6; i ) printf(“ 2d“, *(p ); ( B) for(i 0; i 6; i ) printf(“ 2d“, *(p i); ( C) for(i 0; i 6; i ) printf(“ 2d“, *p ); ( D) for(i 0; i 6; i ) printf(“ 2d“, (*p) )

5、; 9 有以下程序段 int k 0,a 1,b 2,c 3; k a b?b: a; k k c?c; k; 执行程序段后, k的值是 ( A) 3 ( B) 2 ( C) 1 ( D) 0 10 执行以下程序段后, W的值为 int w A, x 14, y 15; w (xy)&(w a); ( A) 1 ( B) NULL ( C) 1 ( D) 0 11 若有定义语句: char s10 “1234567 0 0“;,则 strlen(s)的值是 ( A) 7 ( B) 8 ( C) 9 ( D) 10 12 程序段: int x 12; double y 3 141593; pri

6、ntf(“ d 8 6f“, x, y);的输出结果是 ( A) 123 141593 ( B) 12 3 141593 ( C) 12, 3 141593 ( D) 123.142 13 有如下程序段: int x 12; double y 3 141593; printf(“ d 8 6f“, x, y); 其输出结果是 ( A) 12 3 141593 ( B) 12, 3 141593 ( C) 123 1415930 ( D) 123.142 14 若有以下程序 #include main() int b 10, a 11; a b 4; printf(“ d d n“, a, b)

7、; 则程序的输出结果是 ( A) 12 ( B) 1 2 ( C) 12 ( D) 1 2 15 有以下程序 main() int a 2, c 5; printf(“a d,b d n“, a,c); 程序的输出结果是 ( A) a 2, b 5 ( B) a d, b d ( C) a 2, b 5 ( D) a d, b d 16 有以下程序 main() char a,b,c,d; scanf(“ c c“, a, b); c getchar(); d getchar(); printf(“ c c c c n“,a,b,c,d); 当执行程序时,按下列方式输入数据 (从第 1列开始,

8、代表回车,注意:回车也是一个字符 ) 12 34则输出结果是 ( A) 12 ( B) 1234 ( C) 12 3 ( D) 12 34 17 有以下程序段 int n, t 1, s 0; scanf(“ d“, &n); dos s; t t-2; while(t! n); 为使此程序段不陷入死循环,从键盘输入的数据应该是 ( A)任意正奇数 ( B)任意负偶数 ( C)任意正偶数 ( D)任意负奇数 18 若变量已正确定义为 int型,要通过语句 scanf(“ d, d, d“&a,&b,&c);给 a赋值 1、给 b赋值 2、给 c赋值 3,以下输入形式中错误的是 (注:口代表一个

9、空格符 ) ( A)口口口 1, 2, 3 ( B) 1,口口口 2,口口口 3 ( C) 1, 2, 3 ( D) 1口 2口 3 19 设变量均已正确定义,若要通过 scanf(” d c d c”, &a1, &c1, &a2,c2);语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式中正确的是 (注:口代表空格字符 ) ( A) 10口 X20口 Y ( B) 10口 X 20口 Y ( C) 10X 20Y ( D) 10口 X口 20口 Y 20 设有定义: int a; float b;执行 scanf(“ 2d f“, &a,

10、 &b);语句时,若从键盘输入 876 543 0则 a和 b的值分别是 ( A) 876和 543 0 ( B) 87和 6 0 ( C) 87和 543 0 ( D) 76和 543 0 21 若有定义: int a, b;通过语句 scanf(“ d; d“, &a, &b);能把整数 3赋给变量 a, 5赋给变量 b的输入数据是 ( A) 3, 5 ( B) 3 5 ( C) 3; 5 ( D) 35 22 若有定义 int a; float b; double c;程序运行时输入: 3 4 5能把值 3输入给变量 a、 4输入给变量 b、 5输入给变量 c的语句是 ( A) scan

11、f(“ d lf lf“, &a, &b, &c); ( B) scanf(“ d f lf“, &a, &b, &c); ( C) scanf(“ d f f“, &a, &b, &c); ( D) scanf(“ lf lf lf“, &a, &b, &c); 23 设有定义: double a,b,c;若要求通过输入分别给 a、 b、 c输入 1、 2、 3,输入形式如下 (注:此处口代表一个空格 )口口 1 02 03 0则能进行正确输入的语句是 ( A) scanf(“ lf lf lf“,a,b,c); ( B) scanf(“ f f f“,&a,&b,&c); ( C) sca

12、nf(“ lf lf lf“,&a, &b, &c); ( D) scanf(“ 5 1lf 5 1lf 5 1lf“,&a,&b,&c); 24 以下叙述中正确的是 ( A)当用 scanf从键盘输入数据时,每行数据在没按下回车键 (Enter键 )前,可以任意修改 ( B)花括号对 只能用来表示函数的开头和结尾,不能用于其他目的 ( C)空语句就是指程序中的空行 ( D)复合语句在语法上包含多条语句,其中不能定义局部变量 25 以下叙述中正确的是 ( A)在 scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 ( B)在使用 scanf函数输入整数或实数时,输入数据之间只

13、能用空格来分隔 ( C)在 printf函数中,各个输出项只能是变量 ( D)使用 printf函数无法输出百分号 26 以下叙述中正确的是 ( A)在 scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符 ( B)只能在 printf函数中指定输入数据的宽度,而不能在 scanf函数中指定输入数据占的宽度 ( C) scanf函数中的字符串,是提示程序员的,输入数据时不必管它 ( D)复合语句也被称为语句块,它至少要包含两条语句 27 有以下程序 #include main() int a1, a2; char c1, c2; scanf(“ d c d c“,&a1,&c1,&

14、a2,&c2); printf(“ d, c, d, c“, a1,c1,a2,c2); 若想通过键盘输入,使得 a1的值为 12, a2的值为 34, c1的值为字符 a, c2的值为字符 b,程序输出结果是: 12,a,34,b则正确的输入格式是 (以下口代表空格,代表回车 ) ( A) 12口 a口 34口 b ( B) 12,a,34,b ( C) 12a34b ( D) 12口 a34b 28 有以下程序 #include main() char c1,c2,c3,c4,c5,c6; scanf(“ c c c c“, &c1,&c2,&c3,&c4); c5 getchar();

15、c6 getchar(); putchar(c1); putchar(c2); printf(“ c c n“,c5,c6); 程序运行后,若从键盘输入 (从第 1列开始 )123 45678则输出结果是 ( A) 1256 ( B) 1278 ( C) 1245 ( D) 1267 29 若有定义语句: double x, y, *px, *py;执行 px &x; py &y;正确的输入语句是 ( A) scanf(“ f f“&x, &y); ( B) scanf(“ f f“, x, y): ( C) scanf(“ lf le“, px, py); ( D) scanf(“ lf l

16、f“, x, y); 30 以下程序段完全正确的是 ( A) int k, *p &k; scanf(“ d“, p); ( B) int *p; scanf(“ d“, p); ( C) int *p; scanf(“ d“, &p); ( D) int k, *p; *p &k; scanf(“ d“, p); 31 若在 定义语句: int a,b,c,*p &c;接着执行以下选项中的语句,则能正确执行的语句是 ( A) scanf(“ d d d“,a,b,c); ( B) scanf(“ d“,a,b,c); ( C) scanf(“ d“,p); ( D) scanf(“ d“,&

17、p); 32 有以下程序段 intj; float y; char name50; scanf(“ 2d f s“, &j,&y,name); 当执行上述程序段,从键盘上输入 55566 7777abc后, y的值为 ( A) 55566 0 ( B) 7777 0 ( C) 566 0 ( D) 566777 0 国家二级 C语言机试( C语言程序设计)模拟试卷 12答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题主要考查变量的定义和赋值, C语言中变量的定义形式为:类型说明符变量名初始值:选项 A中, n1和 n2只能单独赋初值;选项 B正确,定义了一个字符变量 c,初值为

18、 32:选项 C错误,初值设置自身不能参与运算;选项 D中字母 E后面的指数必须是整数。 【知识模块】 C语言程序设计 2 【正确答案】 A 【试题解析】 本题考 查指针的使用。指针 p和 q分别指向变量 n2和 n1, n2 n1可以用指针来代替,即 *p代替 n2, *q代替 n1。 【知识模块】 C语言程序设计 3 【正确答案】 C 【试题解析】 本题考查数组和 scanf函数的使用。程序通过 while循环来给数组元素赋值,赋值语句通过调用 scanf函数来实现。 scanf函数从键盘接收数据,第二个参数是数据保存的地址,因此选项 B和选项 D不是地址,错误。选项 A和选项 C是地址,

19、但是选项 A的 i值不会发生变化,循环体内每次都是给同一个元素赋值,不满足要求,选项 C正确。 【知识模块】 C语言程序设计 4 【正确答案】 A 【试题解析】 本题考查数组和 scanf函数的使用。程序通过 for循环来给数组元素赋值,赋值语句通过调用 scanf函数来实现。 scanf函数从键盘接收数据,函数的第二个参数是数据保存的地址,因此选项 B和选项 D不是地址,错误。选项 A和选项 C是地址,但是选项 C的 m值会自增,然后 for循环里面又 m自减,会导致死循环,不满足要求,选项 A正确。 【知识模块】 C语言程序设计 5 【正确答案】 C 【试题解析】 本题考查字符数组。选项

20、A定义了一个字符数组 name,接下来直接给 name赋值字符串是错误的;选项 B定义了两个字符串数组 str1和 str2, str1和 str2表示两个字符串的首地址,直接把 str1赋值给 str2错误:选项 C是正确的;选项 D定义了一个字符变量 str4,给字符变量赋值字符串是错误的。 【知识模块】 C语言程序设计 6 【正确答案】 A 【试题解析】 C语言本身没有提供输入输出语句,但是可以通过调用标准库函数中提供的输入和输出函数来实现输入和输出,选项 B错误;采用 printf输出数据,输出数据都默认为右对齐,若要左对齐,可以在格式控制中的 “ ”和宽度之间加一个 “ ”号来实现,

21、选项 C错误; pfintf的输出精度由变量的类型决定,与域宽无关,选项 D错误。 【知识模块】 C语言程序设计 7 【正确答案】 C 【试题解析】 对于表达式 a a a*a相当于 a a (a*A,然后计算 a aa, a的初值为 3,则表达式的值为 12。 【知识模块】 C语言程序设计 8 【正确答案】 D 【试题解析】 指针 p指向数组 x,因此可以使用 p来输出数组 x的值。选项 A中, *(p )表示先取出 p指向的元素的值,然后 p指向下一个元素,满足要求;选项 B中 *(p i)每次 i的值发生变化, (p i)指向 x数组的 xi元素,因此 *(p i)是取出数组 x的 xi

22、元素的值,满足要求;选项 C和选项 A相比,少了括号,由于 *运算符的优先级比要求,因此,因此 *p表示先取出 p指向的元素的值,然后 p再指向下一个元素,满足要求;选项 D中 (*p)表示先取出 p指向的元素的值,然后该值, p没有增加,每次循环都 *p取出的 x0的值,不满足要求。 【知识模块】 C语言程序设计 9 【正确答案】 B 【试题解析】 本题主要考查条件表达式。 k a b?b: a中 a b为真,因此 k的值为 b,即 k 2。 k k c?c: k中 k c为假, k的值为 2。 【知识模块】 C语言程序设计 10 【正确答案】 C 【试题解析】 本题考查表达式和逻辑运算。

23、x和 y分别为 14和 15,因此 (xy)的值是真。 w的值为 A,其 ASCII值为 65, a的 ASCII值为 97,因此 (w a)的值为真。表达式 w (xy)&(w a)的前后两个值均为真,整个表达式的值为真(1)。 【知识模块】 C语言程序设计 11 【正确答案】 A 【试题解析】 本题考查字符串数组和字符串函数。数组 s有 7个数字,然后跟着结束符 “ 0”,因此数组 s的长度为 7。 【知识模块】 C语言程序设计 12 【正确答案】 A 【试题解析】 本题考查格式化输出函数 printf,,在 printf函数调用里面首先输入整型变量 x的值 12,然后 按照 8 6f格式

24、输出 double类型变量 y的值, 8 6f表示输出 8位,小数点后输出 6位。 【知识模块】 C语言程序设计 13 【正确答案】 D 【试题解析】 本题考查 printf语句。 printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。 printf()函数的调用格式为: print: f(“”, )。 其中, “格式化字符串 ”包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以 “ ”开始,后跟一个或几个规定字符,用来确定输出内容格式。 格式化字符串的格式是: 标志 输出最小宽度 精度 长度 格式字符

25、标志:标志字符为、空格等,其意义如下所示: :结果左对齐,右边填空格; :输出符号 (正号或负号 ); 空格:输出值为正时冠以空格,为负时冠以负号。 输出最小宽度:用十进制整数来表示输出的最少位数 (包括小数点在内至少要输出这么多位 )。 若实际位数多于定义的宽度,则按实际位数输出; 若实际位数少于定义的宽度,则右对齐,左边留 空: 有负号,左对齐,右边留空; 表示宽度的数字以 0开始,则右对齐,左边留空。 精度:精度格式符以 “ ”开头,后跟十进制整数。它的意义是:如果输出数字,则表示小数的位数,若实际位数大于所定义的精度数,则四舍五入,若不足则补 0;如果输出的是字符,则表示输出字符的个数

26、,若实际位数大于所定义的精度数,则截去超过的部分; 长度:长度格式符为 h和 l两种, h表示按短整型量输出, l表示按长整型量输出。 【知识模块】 C语言程序设计 14 【正确答案】 C 【试题解析】 对于表达式 a b 4为复合的赋值运算,结合性自右至左,相当于先计算 b b 4,a a b;结果的符号和第一个操作数的符号相同,因此 b为2, a的结果为 1 【知识模块】 C语言程序设计 15 【正确答案】 B 【试题解析】 输出 “ ”,可以在格式控制中用 “ ”表示,将输出一个 “ ”,而没有表示格式符的开始, d不能表示格式符,因此仅输出: a d bd。 【知识模块】 C语言程序设

27、计 16 【正确答案】 C 【试题解析】 scanf和 getchar函数分别从键盘上读入一个字 符,因此输入 12空格 34,则变量 a中存放的为 1, b中存放 2, c中存放空格, d中存放 3。 【知识模块】 C语言程序设计 17 【正确答案】 D 【试题解析】 本题考查基本输入和循环。程序代码的功能是通过 scanf给变量 n赋值,在 do while循环中, s变量自增, t变量每次减 2, t的初值为 1,循环执行执行一次后 t的值变成 1,然后是 3、 5 ,直到 t的值和 n的值相同循环结束。从 t的值的变化可知, t是一个变化的负奇数,因此输入的 n如果是负奇数,则循环能退

28、出,否则是死循环。 【知识模块】 C语言程序设计 18 【正确答案】 D 【试题解析】 本题主要考查 scanf函数的输入格式问题。 scanf函数的一般形式为: scanf(格式控制字符串,地址 1,地址 2, ) ; 格式控制字符串是由双撇号括起来的字符串,它主要由两种类型的字符组成: 格式说明符由 “ ”和格式字符组成,如 c, d, s, f等。其作用是将输入的数据转换为指定的格式,赋给 scanf的二个参量 (是地址 1)所指定的内存单元(可能一次使用多个 )中。格式说明以 “ ”字符为标志。 普通字符,是需要用户在输入时原样输入的字符。 在本题中格式控制字符串为 “ d, d, d

29、”,表示按十进制输入三个数据。要求在输入数据时,两个数据间一定以一个逗号 “, ”作为间隔符。 【知识模块】 C语言程序设计 19 【正确答案】 C 【试题解析】 在使用 scanf函数进行输入数据时,输入的数据之间必须用空格、回车符、制表符 (Tab键 )等间隔符隔开,但是空格为合法的字符型数据的输入。而按照格式符 “ d c d c“说明,数值型数据和字符数据输入之间不要加入空格间隔,而字符型数据和数值型数据的输入却可以加入任意的空格,回车和跳格。 【 知识模块】 C语言程序设计 20 【正确答案】 B 【试题解析】 在输入函数 scanf的输入格式符 2d f中, 2d表示输入的数据的宽

30、度为 2,所以当从键盘输入 876543 0 CR时,这时把输入数字串的前两位87赋给变量 a,然后将紧接着将 6按照格式控制符 f的形式赋给变量 b,所以 b的值为 6 000000。 【知识模块】 C语言程序设计 21 【正确答案】 C 【试题解析】 在采用 seanf这个函数输入数据时,要严格遵守其输入的规则定义。本题此函数定义的规则是,在两个整数之间加分 号输入。 【知识模块】 C语言程序设计 22 【正确答案】 B 【试题解析】 scanf函数进行输入的时候,默认的输入间隔为空格、跳格和回车,变量 a、 b和 c均为数值型数据,输入时间隔为空格,因此 scanf函数的第一个表示格式的

31、参数之间不用加入分隔符,而要输入 double型数据,格式控制必须用 lf(或 le)。否则,数据不能正确输入。 【知识模块】 C语言程序设计 23 【正确答案】 C 【试题解析】 输入格式 scanf(格式控制,输入项 1,输入项 2 ),其中在 scanf函 数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以用实数指定小数位的宽度。输入 double型数据,格式控制必须用 lf(或 le)。否则,数据不能正确输入。由于输入是一个字符流, scanf函数从这个字符流中按照格式控制指定的格式解析出相应数据,送到指定地址的变量中。 【知识模块】 C语言程序设计 24 【正确答案】

32、A 【试题解析】 当使用 scanf函数从键盘输入数据时,每行数据在未按 F回车键之前,可以任意修改。但按下回车键后, scanf函数即接受了这一行数据,不能再修改。选项 A正确,对于选项 B, 还可以表明复合语句的开头结尾,或者循环体的开头结尾等,选项 B错误,而空语句为;,不是空行,选项 C错误,在复合语句中可以定义变量为局部变量,选项 D错误。 【知识模块】 C语言程序设计 25 【正确答案】 A 【试题解析】 scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,因此若想在屏幕上输出提示信息,应该首先使用 printf函数输出,选项 A正确;在使用

33、 scanf函数输入整数或实数时,输入数据之间可以用空格、跳格、回车来分隔,选项 B错误; printf输出项不但可以为变量,还可以表达式或者常量,选项 C错误;如果要输出 “ ”,可以在格式控制中用 “ ”表示,将输出一个 “ ”,选项 D错误。 【知识模块】 C语言程序设计 26 【正确答案】 A 【试题解析】 输入函数的调用格式: scallf(格式控制,输入项 1,输入项 2, ) 格式控制的主要作用是指定输入时的数据转换格式,格式串中,必须含有与输入项一一对应的格式转换说明符选项 A正确,在 scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以用实数指定小 数

34、位的宽度,选项 B错误, scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,因此若想在屏幕上输出提示信息,应该首先使用 printf函数输出,选项 C错误,复合语句还可以是空语句呢,并没有规定语句条数,选项 D错误。 【知识模块】 C语言程序设计 27 【正确答案】 C 【试题解析】 本题考查 scanf语句。 scanf()函数是格式化输入函数,它从标准输入设备 (键盘 )读取输入的信息。 其调用格式为: scanf(“, ) 格式化字符串 包括以下 3类不同的字符; 格式化说明符:格式化说明符与前面用的 printf()函数中的格式说明符基本相同。

35、 空白字符:空白字符会使 scanf()函数在读操作中略去输入中的一个或多个空白字符。 非空白字符:一个非空白字符会使 scanf()函数在读入时剔除掉与这个非空白字符相同的字符。由于在 scanf函数中,几个变量之间没有任何间隔,所以输入的时候,也同样不应该有间隔。 【知识模块】 C语言程序设计 28 【正确答案】 C 【试题解析】 当用 scanf函数从键盘输入数据时,每行数据的未尾按 下回车键(Enter键 )之前,可以任意修改。但按下回车键 putchar(c1)(Enter键 )之后, scanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入 123时,变量 c1、 c2

36、、 c3的值分别为 1、 2、 3,当输入 45678时,变量 c5、 c6的值 4和 5。所以用输出函数 putchar(c1)输出 1, putchar(c2)输出 2, print(“ c cn“, c5, c6)输出 45。 【知识模块】 C语言程序设计 29 【正确答案】 C 【试题解析】 本题考查 scanf语句。 scanf()函数的一般格式为: scanf(“格式字符串 “,输入项首地址表 ),对于 double类型数据,输入时候要加上 1修饰,否则会产生错误的输入信息,同时输入项必须是地址,可以使保存变量地址的指针变量。 【知识模块】 C语言程序设计 30 【正确答案】 A

37、【试题解析】 选项 B没有对指针进行初始化,无效指针。选项 C错在没有对指针进行初始化,无效指针,并且在 scanf(“ d“, &p)中无需再进行取地址操作。选项 D,语句 *p &k;的左端 *p是指针所指内存空间的值, &k是地址,应为 p &k。 【知识模块】 C语言程序设计 31 【正确答案】 C 【试题解析】 程序语句 int a, b, c, *p &c;定义了三个整型变量 a, b, c,和一个整型指针变量 p,并且把变量 c的地址赋给 p。 scanf函数的一般形式为“scanf(“格式控制字符串 ”,地址列表 )”,其中的地址列表应当是存放输入数据变量的地址。 【知识模块】 C语言程序设计 32 【正确答案】 C 【试题解析】 因为在输入格式控制符中指定变量 j的输入格式控制符为 “ 2d”,即变量 j所占的宽度为 2,所以变量 j只 接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到变量 y中,因为 y为浮点型数据,所以输出结果为选项 C。 【知识模块】 C语言程序设计

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1