第二周作业

 1.已有定义int x;float y; 且执行scanf("%3d%f",&x,&y)语句时,假设输入数据为12345 678↙,则x、y的值分别为(),解释原因。

A.12345 678.000000

B.123 678.000000

C.123 45.678000

D.123 45.000000

D .  原因:%3d,表示读入一个三位数的整数,因此将输入的前三位123赋值给x,把后面45截断,而45和空格赋值给了y

#include <stido.h>
int main(){
 int x;
 float y;
 scanf("%3d%f",&x,%y);
 printf("%3d,%f\n",x,y);
}

 2.阅读以下程序,当输入数据的形式为:12a345b789↙,已知正确答案为(A)请用文字解释原因。

void main (){

char c1,c2:

int al.a2:

cl = getchar ( );

scanf("%2d",&a1):

c2 = getchar ();

scanf("%3d"&a2):
printf("%d, %d,%c, %c\\n", al, a2. c1. c2):}

A.2.345,1,a

B.12,345,a,b

C.2a,45b,1,3

D.2,789,1,a

首先 c1 = getchar();  , 表示一次只接收一个字符,因此输入的12a345b789↙中1便被赋值给c1,之后的第一次scanf 读入2而不是2a,因为a并不是整数类型,因此第一次scanf只读入2,而后的c2如同c1读入一个字符,c2读入a,最后第二个scanf便读入345

3.填空:以下程序的输出结果为
void main( ){
int k=17;
printf("%d, %o, %x\\n", k, k, k);}

%d表示十进制,%o表示八进制,%x表示16进制

因此输出结果为,17,21,11

4.填空: 以下程序的输出结果为
#include <stdio.h>
void main( ){
printf("\*%f,%4.3f\*\\n", 3.14, 3.1415);

}

输出结果为

 *3.140000,3.142*\n

5.

#include<stdio/h>
main(){
	
	char ch;
	printf("Press a key and then press Enter:");
	ch = getchar();
	ch = ch + 32;
	putchar(ch);
	putchar('\n');
	
}

6. 

#include <stdio.h>
main(){
	int a;
	char b;
	float c;
	printf("Please input an integer:");
	scanf("%d",&a);
	printf("integer:%d\n",a);
	printf("Please input a character:");
	scanf("%c",&b);
	printf("character:%c\n",b);
	printf("Please input a float number:");
	scanf("%f",&c);
	printf("float:%f\n",c);
}

需要有一个变量来接收那个空格如:

#include <stdio.h>
main(){
	int a;
	char b;
	float c;
	char ch;
	printf("Please input an integer:");
	scanf("%d",&a);
	printf("integer:%d\n",a);
	ch = getchar();
	printf("Please input a character:");
	scanf("%c",&b);
	printf("character:%c\n",b);
	printf("Please input a float number:");
	scanf("%f",&c);
	printf("float:%f\n",c);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值