第四章顺序结构程序设计 学习目的与要求:1.了解C语句的概念及种类。 2.掌握字符数据的输入与输出方式。 3.重点掌握格式输入与输出 3.重点掌握顺序程序设计 字符数据的输入与输出函数。 2.格式输入与输出函数 3.顺序程序设计。 第1讲 知识归纳 1.G语句种类 (1)控制语句 (2)函数调用语句 (3)表达式语句 (4)空语句 (5)复合语句:用{}括起来的多个语句,称为符合语句 (6)赋值语句:如ⅹ=3 这三个语句,在后续内容学习中讲到,(2)、(3)、(4)现在知道有这三种语句即可 只有一个分号的语句,它什么也不做。如; 2. putchar函数(字符输出函数) 格式: putchar(c);∥输出字符变量c中的字符。 注意:在使用 putcher函数之前,一定要加上“包含命令”,即# include getchar函数(字符输入函数) 格式:c= getchar;∥当运行到这个语句时,等待用户输入一个字符,并将输入字符 赋值给c字符变量 注意:在使用 getchar(函数之前,一定要加上“包含命令”,即# include
第四章 顺序结构程序设计 学习目的与要求:1. 了解 C 语句的概念及种类。 2. 掌握字符数据的输入与输出方式。 3. 重点掌握格式输入与输出。 3. 重点掌握顺序程序设计。 重点: 1. 字符数据的输入与输出函数。 2. 格式输入与输出函数。 3. 顺序程序设计。 第 1 讲 知识归纳 1. C 语句种类 (1) 控制语句 (2) 函数调用语句 (3) 表达式语句 (4) 空语句 (5) 复合语句:用{}括起来的多个语句,称为符合语句。 (6) 赋值语句:如 x = 3 ; 这三个语句,在后续内容学习中讲到,(2)、(3)、(4)现在知道有这三种语句即可。 只有一个分号的语句,它什么也不做。如; 2. putchar 函数(字符输出函数) 格式:putchar (c);// 输出字符变量 c 中的字符。 注意:在使用 putchar()函数之前,一定要加上“包含命令”,即 #include 。 3. getchar 函数(字符输入函数) 格式:c= getchar();// 当运行到这个语句时,等待用户输入一个字符,并将输入字符 赋值给 c 字符变量。 注意:在使用 getchar()函数之前,一定要加上“包含命令”,即 #include
C语言程序设计上机指导与同步训练 4. pr intf0函数 格式: printf(%d,%f”,a,x); 输出变量列表 格式控制字符串,以%开头,用双引号括起来。 说明:要求格式控制字符串中的格式符,要与所控制的变量类型匹配。 (1)%d控制输出十进制整数 (2)%mdm指定输出宽度,若m数据宽度,则 左端补以空格: (3)%0控制输出八进制整数,输出的数值不带符号 (4)%X控制输出十六进制整数,输出的数值不带符号: (5)%控制输出十进制 unsigned型整数; (6)%c控制输出一个字 (7)%s控制输出一个字符串 (8)%mns,%-mns控制输出一个字符串,m控制输出字符的宽度,n表示从字符串左 端开始,输出字符个数:-表示字符串向左靠,右补空格 (9)%f控制以小数形式,输出一个实数; (10)%mnf,%mnf控制以小数形式,输出一个实数 m表示输出实数的宽度;n表示输出小数的位数; 表示实数输出向左靠,右补空格: l1)%e控制以指数形式输出实数; (12)如输出%,则应在格式控制字符串中使用两个连续的%。 如 printf((%2P9%”,1.0/5);∥输出20.00% 基础训练(A 、填空题 1.C语句分为5种: 、函数调用语句、 、空语句和 一个基本语句的最后一个字符是 3.复合语句又称分程序,是用 括起来的语句 使用C语言库函数时,要用于预编译命令 将有关的“头文件”包括到用 户源文件中 5.使用标准输入输出库函数时,程序的开头要有如下预处理命令: 6.{a=3;c+=a-b,}在语法上被认为是条语句。 7. getchar函数的作用是从终端输入 个字符 8.如果从键盘输入字符'a'并按回车键,请写出以下程序运行效果 #include
·120· C 语言程序设计上机指导与同步训练 ·120· 4. printf()函数 格式:printf( “% d , % f ” , a , x ) ; 输出变量列表; 格式控制字符串,以%开头,用双引号括起来。 说明:要求格式控制字符串中的格式符,要与所控制的变量类型匹配。 (1) %d 控制输出十进制整数; (2) %md m 指定输出宽度,若 m 数据宽度, 则 左端补以空格; (3) %o 控制输出八进制整数,输出的数值不带符号; (4) %x 控制输出十六进制整数,输出的数值不带符号; (5) %u 控制输出十进制 unsigned 型整数; (6)%c 控制输出一个字符; (7) %s 控制输出一个字符串; (8) %m.ns,%-m.ns 控制输出一个字符串, m 控制输出字符的宽度,n 表示从字符串左 端开始,输出字符个数;-表示字符串向左靠,右补空格; (9) %f 控制以小数形式,输出一个实数; (10) %m.nf,%-m.nf 控制以小数形式,输出一个实数; m 表示输出实数的宽度;n 表示输出小数的位数; -表示实数输出向左靠,右补空格; (11) %e 控制以指数形式输出实数; (12) 如输出 % , 则应在格式控制字符串中使用两个连续的%。 如 printf(“% .2f%%”,1.0/5) ; //输出 20. 00%。 基础训练(A) 一、填空题 1. C 语句分为 5 种: 、函数调用语句、 、空语句和 。 2. 一个基本语句的最后一个字符是 。 3. 复合语句又称分程序,是用 括起来的语句。 使用 C 语言库函数时,要用于预编译命令 将有关的“头文件”包括到用 户源文件中。 5. 使用标准输入输出库函数时,程序的开头要有如下预处理命令: 。 6. { a=3;c+=a-b; } 在语法上被认为是 条语句。 7. getchar 函数的作用是从终端输入 个字符。 8. 如果从键盘输入字符’a’并按回车键,请写出以下程序运行效果 。 #include main() {
第二部分¢语言程序设计同步训练 121 putchar(getchar()) 9.以下程序的输出结果为 short i printf(wni:dec=告d,oct=旨O,hex=是x, unsigned=告u\n”,主,主,i,i); 10.以下程序的输出结果为 printf(”*f,号4.3f*n”,3.14,3.1415); 11.以下程序的输出结果为 main() har c= printf("c:dec=号d,Oct=告O,hex=x, ASCII=cn”,C,C,C,C); 12.已有定义intd=-2;执行以下语句后的输出结果为 printf(”*d(1)=d*d(2)=3d*d(3)=8-3d*\n”,d,d,d) printf(*d(4)=告o*d(5)=号7o*d(6)=旨-7o*\n”,d,d,d) 13.以下程序的输出结果为 printf(Mx=dy=旨d*sum*=旨d\n”,x,Y,x+y); printf("10 Squared is: % d\n", 10*10) 14.以下程序的输出结果为 #include main() f1oata=123.456; double h=8765.4567; printf(”(1)fn",a); printf("(2)814.3f\n",a) printf("(3)6.4f\n", a) printf("(4)影1f\n”,b); printf(”(5)14.31f\n”,b); printf("(6)器8.41fn”,b) printf(”(7).4fn”,b)
第二部分 C 语言程序设计同步训练 ·121· ·121· putchar(getchar()); } 9. 以下程序的输出结果为 。 main() { short i; i=-4; printf(“\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i); } 10. 以下程序的输出结果为 。 main() { printf(“*%f,%4.3f*\n”,3.14,3.1415); } 11. 以下程序的输出结果为 。 main() { char c=‘x’; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c); } 12. 已有定义 int d=-2;执行以下语句后的输出结果为 。 printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n”,d,d,d); printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n”,d,d,d); 13. 以下程序的输出结果为 。 main() { int x=1,y=2; printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y); printf(“10 Squared is:%d\n”,10*10); } 14. 以下程序的输出结果为 。 #include main() { float a=123.456; double b=8765.4567; printf(“(1) %f\n”,a); printf(“(2) %14.3f\n”,a); printf(“(3) %6.4f\n”,a); printf(“(4) %lf\n”,b); printf(“(5) %14.3lf\n”,b); printf(“(6) %8.4lf\n”,b); printf(“(7) %.4f\n”,b); }
C语言程序设计上机指导与同步训练 、判断题 1.所谓函数体实际上就是一个复合语句。() 2.C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。() 3. putchar函数可以向终端输出一个整数数据。( 4.考虑到 printf和 scanf函数使用频繁,系统允许在使用这两个函数时可不加# include 5.任何表达式都可以加上分号而成为有意义的语句。() 三、选择题 1.以下不属于控制语句的是()。 A)表达式语句 B)选择语句C)循环语句D)转移语句 2. putchar函数可以向终端输出一个() A)整型变量表达式值 B)实型变量值 )字符串 D)字符或字符型变量值 getchar函数的参数个数是()。 )0 D)任意 4.以下程序的输出结果是() main() printf("\n*sl=%15s*","chinabeijing") printf("\n*s2=%-5s*","chi") A)*sl=chinabeijing B)*sI=chinabeijing C)*sI=*chinabeijing* D)*sI=chinabeijing* 5. printf函数中用到格式符%5,其中数字5表示输出的字符串占用5列。如果字符串 长度大于5,则输出按方式():如果字符串长度小于5,则输出按方式() A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 6.已有定义inta=2,和输出语句: print(%8x”a)以下正确的叙述是() A)整型变量的输出格式符只有%d一种 B)%x是格式符的一种,它可以适用于任何一种类型的数据 C)%ⅹ是格式符的一种,其变量的值按十六进制输出,但%8X是错误的 D)%8X不是错误的格式符,其中数字8规定了输出字段的宽度
·122· C 语言程序设计上机指导与同步训练 ·122· 二、判断题 1. 所谓函数体实际上就是一个复合语句。( ) 2. C 语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。( ) 3. putchar 函数可以向终端输出一个整数数据。( ) 4. 考虑到 printf 和 scanf 函数使用频繁,系统允许在使用这两个函数时可不加#include 命令。( ) 5. 任何表达式都可以加上分号而成为有意义的语句。( ) 三、选择题 1. 以下不属于控制语句的是( )。 A) 表达式语句 B) 选择语句 C) 循环语句 D) 转移语句 2. putchar 函数可以向终端输出一个( )。 A) 整型变量表达式值 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 3. getchar 函数的参数个数是( )。 A) 1 B) 0 C) 2 D) 任意 4. 以下程序的输出结果是( )。 main() { printf(“\n*s1=%15s*”, “chinabeijing”); printf(“\n*s2=%-5s*”, “chi”); } A) *s1=chinabeijing * B) *s1=chinabeijing * *s2=**chi* *s2=chi * C) *s1=*chinabeijing* D) *s1=chinabeijing* *s2=chi* *s2=chi * 5. printf 函数中用到格式符%5s,其中数字 5 表示输出的字符串占用 5 列。如果字符串 长度大于 5,则输出按方式( );如果字符串长度小于 5,则输出按方式( )。 A) 从左起输出该字串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串,左补空格 D) 输出错误信息 6. 已有定义 int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是( )。 A) 整型变量的输出格式符只有%d 一种 B) %x 是格式符的一种,它可以适用于任何一种类型的数据 C) %x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的 D) %8lx 不是错误的格式符,其中数字 8 规定了输出字段的宽度
第二部分¢语言程序设计同步训练 123· 能力提高(B) 、选择题 1.以下C程序正确的运行结果是( main () 1ongy=-43456; printf("y=号-81dn”,y) printf("y=8-08ld\n",y) printf("y=081d\n",y) printf("y=8+8ld\n",y) A)y=-43456 B)y=-43456 y=-43456 y=-43456 y=-0043456 0043456 y=-43456 y=+43456 )y=-43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y=-43456 y=+43456 2.以下C程序正确的运行结果是()。 main() int y=2456 printf("y=83on”,y) printf("y=8o\n",y); printf("y=8#8o\n",y)i B)y=4630 y=2456 y=##计##2456 =#######4630 C)y=2456 D)y=4630 y=02456 y=04630 二、若a=3,b=4,c=5,x=1.2,y=24,u=51274,n=128765,cl=a’,c2=b’。想得到 以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 要求输出的结果如下:口表示空格 x=1.200000y=24000002-3.600000 x+y=口3.60口口y+z=1.20口口z+x=2.40 =口51274口n=□口口128765
第二部分 C 语言程序设计同步训练 ·123· ·123· 能力提高(B) 一、选择题 1. 以下 C 程序正确的运行结果是( )。 main() { long y=-43456; printf(“y=%-8ld\n”,y); printf(“y=%-08ld\n”,y); printf(“y=%08ld\n”,y); printf(“y=%+8ld\n”,y); } A) y= -43456 B) y= -43456 y= -43456 y= -43456 y= -0043456 y= -0043456 y= -43456 y=+43456 C) y= -43456 D) y= -43456 y= -43456 y= -0043456 y= -0043456 y=00043456 y= -43456 y= +43456 2. 以下 C 程序正确的运行结果是( )。 main() { int y=2456; printf(“y=%3o\n”,y); printf(“y=%8o\n”,y); printf(“y=%#8o\n”,y); } A) y=2456 B) y=4630 y=2456 y=4630 y=########2456 y=########4630 C) y=2456 D) y=4630 y=2456 y=4630 y=02456 y=04630 二、若 a=3,b=4,c=5,x=1.2,y=2.4,u=51274,n=128765,c1=’a’,c2=’b’。想得到 以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 要求输出的结果如下:□表示空格 a=□3□□b=□4□□c=□5 x=1.200000,y=2.400000,z=-3.600000 x+y=□3.60□□y+z=-1.20□□z+x=-2.40 u=□51274□□n=□□□128765
·124 C语言程序设计上机指导与同步训练 cI=a' dor]97(ASCII c2=B口or98(AsCI) 第2讲 知识归纳 1. scanf o函数 格式: scanf(%d%f”,&a,&x) 变量地址列表;一定是&开头,后面紧跟变量名 格式控制字符串,以%开头,用双引号括起来 说明:要求格式控制字符串中的格式符,要与所控制的变量类型匹配 (1)格式控制字符串中的格式符,与pin函数中的格式符相一致。 (2) scanf(%d%5d“,&a,&b);∥数字5,指定截取数字的位数。 (3)输入数据时,以一个或多个空格作间隔。 (4) scanf(“%d,%d“,&a,&b) 格式之间的号在入时买入 (5)在 scanf O中,这样写是错误的 scanf(“%5.2f,&x); 2不 (6)在 scanf(“%c%“,&cl,&c2);这个语句中,输入字符之间不需要输入空格间隔 符,更不需要输入其他间隔符 2.顺序结构程序设计 (1)根据问题和要求,写出算法思想; (2)会画顺序结构程序的流程图 (3)根据流程图,写出源代码。 基础训练(A) 、填空题 l. printf函数的作用是向终端 若干个任意类型的数据。 intf函数中的“格式控制”,包括 和 两种信息。 3. scanf函数中的“格式控制”后面应当是变量 而不是变量名 4.在用 scanf函数中输入数据时,如果在“格式控制”字符串中除了格式说明以外还 有其他字符,则应在对应位置输入与这些字符相同的 5.在用”C”格式输入字符时,空格字符和“转义字符”都作为有效字符
·124· C 语言程序设计上机指导与同步训练 ·124· c1=’a’ □or□97(ASCII) c2=’B’ □or□98(ASCII) 第 2 讲 知识归纳 1. scanf()函数 格式:scanf ( “% d % f ”, &a , &x ) ; 变量地址列表;一定是 &开头,后面紧跟 变量名; 格式控制字符串,以%开头,用双引号括起来。 说明:要求格式控制字符串中的格式符,要与所控制的变量类型匹配。 (1) 格式控制字符串中的格式符,与 printf()函数中的格式符相一致。 (2) scanf ( “ %d %5d “ , &a , &b) ; //数字 5 ,指定截取数字的位数。 (3) 输入数据时,以一个或多个空格作间隔。 (4) scanf ( “ %d ,%d “ , &a , &b)。 格式符之间的符号,在输入数据时,要原样输入; (5) 在 scanf ()中,这样写是错误的 scanf ( “ % 5. 2 f“ , &x ) ; .2 不能有。 (6) 在 scanf ( “ %c%c “ , &c1 , &c2) ; 这个语句中,输入字符之间不需要输入空格间隔 符,更不需要输入其他间隔符; 2. 顺序结构程序设计 (1) 根据问题和要求,写出算法思想; (2) 会画顺序结构程序的流程图; (3) 根据流程图,写出源代码。 基础训练(A) 一、填空题 1. printf 函数的作用是向终端 若干个任意类型的数据。 2. printf 函数中的“格式控制”,包括 和 两种信息。 3. scanf 函数中的“格式控制”后面应当是变量 ,而不是变量名。 4. 在用 scanf 函数中输入数据时,如果在“格式控制”字符串中除了格式说明以外还 有其他字符,则应在对应位置输入与这些字符相同的 。 5. 在用”%c”格式输入字符时,空格字符和“转义字符”都作为有效字符
第二部分¢语言程序设计同步训练 6.在输入数据时,遇以下情况时该数据认为结束:遇 、或按回车或TAB键 或按指定的宽度结束;或遇非法输入。 7.输入数据时不能规定 8.如果在%后有一个“*”附加说明符,表示 、选择题 1.若inta.b,scan(%od0%od&a,&b);不可以用()作为输入的分隔符 B)空格 C)回车 D)TAB键 2.若x,y均定义为int型,z定义为 double型,以下不合法的 scanf函数调用语句是 () A)scanf("%d%lx, %le, &x, &y, &z) B)scanf( %2d*%od%lf, &x, &y, &z); C) scanf(“%x%*d%o”,&x&y) D)scanf("%x%0%6.2f, &x, &y, &z); 3.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B, 当从第一列开始输入数据时,正确的数据输入方式是() int al, a2; char cl, c2; canf(w告d备d",&a1,&a2) A)1020AB B)1020 C)10 20 AB D)10 20AB正确的输出结果为( int x canf("d各d旨d",lx,&y,z); printf("x+y+z=&d\n",x+y+z) B)x+y+z=35 C)x+z=35 D)不确定值 5.已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为( main() printf("\nInput number: " 输入语句 printf("\nf=%f, a=gd\n",f, a) Input number: 4. 5 2
第二部分 C 语言程序设计同步训练 ·125· ·125· 6. 在输入数据时,遇以下情况时该数据认为结束:遇 、或按回车或 TAB 键; 或按指定的宽度结束;或遇非法输入。 7. 输入数据时不能规定 。 8. 如果在%后有一个“*”附加说明符,表示 。 二、选择题 1. 若 int a,b; scanf(“%d%d”,&a,&b); 不可以用( )作为输入的分隔符。 A), B) 空格 C) 回车 D) TAB 键 2. 若 x,y 均定义为 int 型,z 定义为 double 型,以下不合法的 scanf 函数调用语句是 ( )。 A) scanf(“%d%lx,%le”,&x,&y,&z); B) scanf(“%2d*%d%lf”,&x,&y,&z); C) scanf(“%x%*d%o”,&x,&y); D) scanf(“%x%o%6.2f”,&x,&y,&z); 3. 已有如下定义和输入语句,若要求 a1,a2,c1,c2 的值分别为 10,20,A 和 B, 当从第一列开始输入数据时,正确的数据输入方式是( )。 int a1,a2; char c1,c2; scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,&c2); A) 1020AB B) 10 20 AB C) 10 20 AB D) 10 20AB 4. 阅读以下程序,当输入数据的形式为 25,13,10 正确的输出结果为( )。 main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 5. 已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为( )。 main() { int a; float f; printf(“\nInput number:”); 输入语句 printf(“\nf=%f,a=%d\n”,f,a); } Input number:4.5 2
C语言程序设计上机指导与同步训练 A)scanf("%d, %f, &a, &f); B) scanf("%f, %d', &f, &a) C) scanf%d%f”&a&n); D) scanf(%r%ad”&f&a) 6.根据定义和数据的输入方式,输入语句的正确形式为 已有定义:foat1,f2 数据的输入方式:452 3.5 A) scanf(“%of,%f”,&l,&n2) B)scanf(%f%f", &fl, &f2); C)scanf(%.2f%2.If, &fl, &f2) D)scanf(%3.2f%2.If", &fl, &f2) 7.阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是 main () int x; float y; printf(" enter x,y:”) 输入语句 输出语句 输入形式 enter x, y: 2 3 4 输出形式 +y=5.40 A)scanf("%d, %f, &x, &y) printf("\nx+y=%04.2f x+y) B)scanf( %d%f, &x, &y) printf("nx+y=%4. 2f,x+y); C) scanf(%d%f", &x, &y) printf("lnx+y=%06.Ifx+y); D)scanf(%d%3.If, &x, &y) printf("nx+y=%4. 2f,x+y); 8.以下说法正确的是()。 A)输入项可以为一实型常量,如 scanf(%f,3.5) B)只有格式控制,没有输入项,也能进行正确输入,如scan(“a=%d,b=%d”) C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scant(%42r”&f; D)当输入数据时,必须指明变量的地址,如 scanf(%f",&f) 9.有输入语句: scanf(“a-%d.b=%d,c=%d”&a&b,&c),为使变量a的值为1,b为3,c 为2,从键盘输入数据的正确形式应当是()。 A)132 B)1,3,2 ·126
·126· C 语言程序设计上机指导与同步训练 ·126· A) scanf(“%d,%f”,&a,&f); B) scanf(“%f,%d”,&f,&a); C) scanf(“%d%f”,&a,&f); D) scanf(“%f%d”,&f,&a); 6. 根据定义和数据的输入方式,输入语句的正确形式为( )。 已有定义:float f1,f2; 数据的输入方式:4.52 3.5 A) scanf(“%f,%f”,&f1,&f2); B) scanf(“%f%f”,&f1,&f2); C) scanf(“%3.2f %2.1f”,&f1,&f2); D) scanf(“%3.2f%2.1f”,&f1,&f2); 7. 阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是( )。 main() { int x; float y; printf(“enter x,y:”); 输入语句 输出语句 } 输入形式 enter x,y:2 3.4 输出形式 x+y=5.40 A) scanf(“%d,%f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); B) scanf(“%d%f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); C) scanf(“%d%f”,&x,&y); printf(“\nx+y=%6.1f”,x+y); D) scanf(“%d%3.1f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); 8. 以下说法正确的是( )。 A) 输入项可以为一实型常量,如 scanf(“%f”,3.5); B) 只有格式控制,没有输入项,也能进行正确输入,如 scanf(“a=%d,b=%d”); C) 当输入一个实型数据时,格式控制部分应规定小数 点 后的位数,如 scanf(“%4.2f”,&f); D) 当输入数据时,必须指明变量的地址,如 scanf(“%f”,&f); 9. 有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a 的值为 1,b 为 3,c 为 2,从键盘输入数据的正确形式应当是( )。 A) 132 B) 1,3,2
第二部分¢语言程序设计同步训练 127 C)a=1b=3c=2 D)a=1,b=3,c=2 10.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B, 当从第一列开始输入数据时,正确的数据输入方式是()。 int al, a2, char cl, c2 scanf(“影dcdc”,&a1,&c1,a2,&c2); A)10A 20B B)10A 20 B C)10A20B D)10A20 B 1l.已有定义intx, float y;且执行 scant(%3d%r”&x&y)语句,若从第一列开始输入数 据12345678回车>,则x的值为(),y的值为()。 (1)A)12345 )123 D)345 (2)A)无定值B)450000c678000000D123.00000 、编程题 编写程序,从键盘上输入三个数分别赋值给变量a、b、c,求它们的平均值。并按 如下形式输出: average of*、**and**is***。其中,三个**依次表示a、b、c的值 **表示ab,c的平均值。 2.输入9时23分并把它化成分钟后输出(从零点整开始计算)。 3.131英里=1.609公里,地球与月球之间的距离大约是238857英里,请编写C程序 在屏幕上显示出地球与月球之间大约是多少公里? 能力提高(B) 填空题 1.在 scanf函数调用语句中,可以在格式字符和%号之间加一星号,它的作用 当输入以下数据:10203040(此处每个 数据之间有两个空格),下面语句的执行结果 int al, a2, a3 scanf(“各d*ddd”,&a1,a2,a3) 2.有一输入函数 scanf(%d”k,其不能使foat类型变量k得到正确数值的原因是 和 3.已有定义inta; float b,x; char cl,c2;为使a=3,b=6.5x=12.6cl=‘a’,c2=‘A’,正确的 scanf函数调用语句是 输入数据的方式 4.若有以下定义和语句,为使变量cl得到字符‘A’,变量c2得到字符‘B’,正确 的格式输入形式是 char cl, C2 scanf(“4c4c”,&C1,岳c2); 5.执行以下程序时,若从第一列开始输入数据,为使变量a=3.b=7,ⅹ=8.5,y=71.82, c1=A,c2=a’,正确的数据输入形式是
第二部分 C 语言程序设计同步训练 ·127· ·127· C) a=1 b=3 c=2 D) a=1,b=3,c=2 10. 已有如下定义和输入语句,若要求 a1,a2,c1,c2 的值分别为 10,20,A 和 B, 当从第一列开始输入数据时,正确的数据输入方式是( )。 int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A) 10A 20B B) 10 A 20 B C) 10A20B D) 10A20 B 11. 已有定义 int x; float y;且执行 scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数 据 12345 678,则 x 的值为( ) ,y 的值为( )。 (1) A) 12345 B) 123 C) 45 D) 345 (2) A) 无定值 B) 45.000000 C) 678.000000 D) 123.000000 三、编程题 1. 编写程序,从键盘上输入三个数分别赋值给变量 a、b、c,求它们的平均值。并按 如下形式输出:average of **、** and ** is **.**。其中,三个**依次表示 a、b、c 的值, **.**表示 a,b,c 的平均值。 2. 输入 9 时 23 分并把它化成分钟后输出 (从零点整开始计算)。 3. 1.3 1 英里=1.609 公里,地球与月球之间的距离大约是 238857 英里,请编写 C 程序, 在屏幕上显示出地球与月球之间大约是多少公里? 能力提高(B) 一、填空题 1. 在 scanf 函数调用语句中,可以在格式字符和%号之间加一星号,它的作用 是 ;当输入以下数据:10 20 30 40(此处每个 数据之间有两个空格),下面语句的执行结果 。 int a1,a2,a3; scanf(“%d%*d%d%d”,&a1,&a2,&a3); 2. 有一输入函数 scanf(“%d”,k);其不能使 float 类型变量 k 得到正确数值的原因是 和 。 3. 已有定义 int a; float b,x; char c1,c2;为使 a=3,b=6.5,x=12.6,c1=‘a’,c2=‘A’,正确的 scanf 函数调用语句是 ,输入数据的方式 为 。 4. 若有以下定义和语句,为使变量 c1 得到字符‘A’,变量 c2 得到字符‘B’,正确 的格式输入形式是 。 char c1,c2; scanf(“%4c%4c”,&c1,&c2); 5. 执行以下程序时,若从第一列开始输入数据,为使变量 a=3,b=7, x=8.5, y=71.82, c1=‘A’, c2=‘a’,正确的数据输入形式是
128 C语言程序设计上机指导与同步训练 int a, b: float x, yi char cl, c2 scanf scanf(Mc1=8cc2=旨c”,&c1,&c2); printf(”a=号d,b=旨d,x=号f,y=旨f,C1=c,c2= b,x,Y,c1,c2); 6.已有定义ntij, float x;为将-10赋给i,12赋给j,410.34赋给x:则对应以下 scanf 函数调用语句的数据输入形式是 、执行下列程序按指定方式输入(口表示空格),能否得到指定的输出结果?若不能 请修改程序,使之能得到指定的输出结果。 输入:2口3口44 输出:a=2.b=3,c=4 x=6,y=24 程序 main( scanf("旨a,a,旨d",a,b,c) printf("d暑d旨d" printf("x=f\n",x,"y=号f\n”,y); 三、编程题 1.编写C程序,从键盘输入一个字符,在屏幕上显示出其前后相连的三个字符 2.编程实现不用第三个变量,实现两个数的对调操作。 链接二级考试 选择题 1.下列程序的输出结果是()。 B)32 C)0 3.07 main() I double d=3.2; int x=1.2;y=(x+3.8)/5.0; printf ("gd \n", d*y) 2.下列程序执行后的输出结果是(小数点后只写一位)()。 A)666.06.0 B)666.76.7 C)666.067 D)666.76.0
·128· C 语言程序设计上机指导与同步训练 ·128· main() { int a,b; float x,y; char c1,c2; scanf(“a=%d b=%d”,&a,&b); scanf(“x=%f y=%f”,&x,&y); scanf(“c1=%c c2=%c”,&c1,&c2); printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2); } 6. 已有定义 int i,j; float x;为将-10 赋给 i,12 赋给 j,410.34 赋给 x;则对应以下 scanf 函数调用语句的数据输入形式是 。 scanf(“%o%x%e”,&i,&j,&x); 二、执行下列程序,按指定方式输入(□表示空格),能否得到指定的输出结果?若不能, 请修改程序,使之能得到指定的输出结果。 输入:2□3□4↙ 输出:a=2,b=3,c=4 x=6,y=24 程序: main ( ) { int a, b, c, x, y; scanf ("%d, %d, %d", a, b, c); x=a*b; y=x*c; printf ("%d %d %d", a, b, c); printf ("x=%f\n",x, "y=%f\n",y); } 三、编程题 1. 编写 C 程序,从键盘输入一个字符,在屏幕上显示出其前后相连的三个字符。 2. 编程实现不用第三个变量,实现两个数的对调操作。 链接二级考试 一、选择题 1. 下列程序的输出结果是( )。 A) 3 B) 3.2 C) 0 D) 3.07 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d \n", d*y); } (2000 年 4 月) 2. 下列程序执行后的输出结果是(小数点后只写一位)( )。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0