• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

实验二

互联网 diligentman 2周前 (11-19) 11次浏览

····

  • 1.编写一个程序,以月日年(mm/dd/yyyy)的格式接受用户输入的日期信息,并以年 月日(即 yyyymmdd)的格式显示出来:
  • Enter a date (mm/dd/yyyy):2/17/2011
  • You enter the date 20110217
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
	int mm,dd,yyyy;
	printf("Enter a date (mm/dd/yyyy):");
	scanf("%2d/%2d/%d",&mm,&dd,&yyyy);
	printf("You enter the date %d%.2d%.2d",yyyy,mm,dd);
	system("pause");
	return 0;
}

实验二

  • 2.编写一个程序,对用户录入的产品信息进行格式化,程序会话应类似下面这样
  • Enter item number:583
  • Enter unit price: 13.5
  • Enter purchase date (mm/dd/yy):10/24/2010
  • Item Unit Price Purchase Date
  • 583 $13.50 10/24/2010
  • 其中产品编号和日期采用左对齐方式,单位价格采用右对齐方式,允许最大取值为9999.99 的美元(提示:各个列用制表符控制)
#include<stdio.h>
#include<stdlib.h>
 int main(void)
 {
  int number,mm,dd,yy;
   float price;
	printf("Enter item number:");
	scanf("%d",&number);
	printf("Enter unit price:");
	scanf("%f",&price);
	printf("Enterr purchase date (mm/dd/yy):");
	scanf("%d/%d/%d",&mm,&dd,&yy);
	printf("Itemt Unit Pricet Purchase Daten");
	printf("%dt %4.2ftt %.2d/%.2d/%.2dn",number,price,mm,dd,yy);
	system("pause");
	return 0;
}

实验二

  • 3.图书用国际标准书号(ISBN)进行标识,2007 年 1 月 1 日后分配的 ISBN 包含 13 位 数字(旧的 ISBN 使用 10 位数字),分为 5 组,如 978-0-393-97950-3。第一组(GSI 前 缀)目前为 978 或 979.第二组(组标识)指明语言或原出版国(如 0 和 1 用于讲英语的国 家)。第三组(出版商编号)表示出版商)。第四组(产品编号)是由出版商分配的用于识 别具体哪一本书的。ISBN 的末尾是一个校验数字,用于验证前面数字的准确性。编写一个 程序来分解用户输入的 ISBN 信息
  • Enter ISBN:978-0-393-97950-3
  • GSI Prefix:978
  • Group identifier:0
  • Publisher code:393
  • Item number:97950
  • Check digit:3
  • 注意,每组中数字的个数是可变的,不能认为每组的长度和示例一样,用实际的 ISBN值(通常放在书底和版权页上)测试你编写的程序
#include<stdio.h>
#include<stdlib.h>
 int main(void)
 {
  int num1,num2,num3,num4,num5;
  printf("Enter ISBN:");
  scanf("%d-%d-%d-%d-%d",&num1,&num2,&num3,&num4,&num5);
  printf("GSI Prefix:%dn",num1);
  printf("Group identifier:%dn",num2);
  printf("Publisher code:%dn",num3);
  printf("Item number:%dn",num4);
  printf("Check digit:%dn",num5);
	system("pause");
	return 0;
}

实验二

  • 4.编写一个程序,提示用户以(XXX)XXX-XXXX 的格式输入电话号码,并以 xxx.xxx.xxxx 的格式显示该号码:
  • Enter phone number[(xxx) xxx-xxxx]: (404) 817-6900
  • You entered 404.817.6900
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
 int num1,num2,num3;
	printf("Enter phone number[(xxx) xxx-xxxx]:");
	scanf("(%d) %d-%d",&num1,&num2,&num3);
	printf("You entered %d.%d.%d",num1,num2,num3);
	system("pause");
	return 0;
}

实验二

  • 5.编写一个程序,要求用户(按任意持续)输入 1 到 16 的所有整数,然后用4*4矩阵的形式将他们显示出来,再计算每行、每列、每条对角线上的和
  • Enter the number from 1 to 16 in any order
  • 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
  • 16 3 2 13
  • 45 10 11 8
  • 9 6 7 12
  • 4 15 14 1
  • Row sums:34 34 34 34
  • Colum sums:34 34 34 34
  • Diagonal sums:34 34
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,h1,h2,h3,h4;
    printf("Enter the number from 1 to 16 in any order:n");
    scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",&n1,&n2,&n3,&n4,&n5,&n6,&n7,&n8,&n9,&n10,&n11,&n12,&n13,&n14,&n15,&n16);
    printf("%dt%dt%dt%dn",n1,n2,n3,n4);
    printf("%dt%dt%dt%dn",n5,n6,n7,n8);
    printf("%dt%dt%dt%dn",n9,n10,n11,n12);
    printf("%dt%dt%dt%dn",n13,n14,n15,n16);
    h1=n1+n2+n3+n4;
    h2=n5+n6+n7+n8;
    h3=n9+n10+n11+n12;
    h4=n13+n14+n15+n16;
    printf("Row sums:%d %d %d %dn",h1,h2,h3,h4);
    h1=n1+n5+n9+n13;
    h2=n2+n6+n10+n14;
    h3=n3+n7+n11+n15;
    h4=n4+n8+n12+n16;
    printf("Colum sums:%d %d %d %dn",h1,h2,h3,h4);
    h1=n1+n6+n11+n16;
    h2=n4+n7+n10+n13;
    printf("Diagonal sums:%d %dn",h1,h2);
    system("pause");
    return 0;
}

实验二

  • 6.如果行、列和对角线的和都一样(如本例所示),则称这些数组为一个幻方,这里给 出的幻方出现于艺术家和数学家 Aibrecht Duere 在 1514 年的一幅画中,(注意,矩阵的最 后一行中间的两个数给出了该画的创作年代)
  • 7.(1)编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。程 序会话类似下面这样:
  • Enter a two-digit number:28
  • The reversal is :82
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
 int num;
	printf("Enter a two-digit number:");
	scanf("%d",&num);
    num=num%10*10+num/10;
	printf("The reversal is:%d",num);
	system("pause");
	return 0;
}

实验二

  • (2)扩展上题中的程序使其可使用 3 位数。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
 int num;
	printf("Enter a two-digit number:");
	scanf("%d",&num);
    num=num%10*100+((num/10)%10)*10+num/100;
	printf("The reversal is:%d",num);
	system("pause");
	return 0;
}

实验二

  • 8.编写一个程序,读入用户输入的整数并按八进制(基数为 8)显示出来:
  • Enter a number between 0 and 32767:1953
  • In octal,your number is 03461
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
 int yu,chu,num;
    printf("Enter a number between 0 and 32767:");
    scanf("%d",&chu);
    yu=chu%8;
    chu=chu/8;
    num=yu;
    yu=chu%8;
    chu=chu/8;
    num=num+yu*10;
    yu=chu%8;
    chu=chu/8;
    num=num+yu*100;
    yu=chu%8;
    chu=chu/8;
    num=num+yu*1000;
    printf("The reversal is %.5d",num);
	system("pause");
	return 0;
}

  • 实验二
  • 输出应为 5 位数即便不需要那么多数位也要如此。(提示:要把一个数转换为八进制,首先将其除以 8,所得余数为八进制数的最后一位;然后把原始数除以 8,对除法结果重复 上述过程,得到倒数第二位) 9.北美的货物生产商都会在超市销售的每一件商品上放置一个条形码,这种被称为通 用产品代码(UPC)的条形码可以识别生产商和产品,每个条形码表示一个 12 位数,例如 Stouffer’法式面包腊肠披萨的条形码位 0 13800 15173 5,第一个数字表示商品种类, 第一组 5 位数字用来标识生产商,第二组 5 位数字用来标识产品,最后一位数字是校验位。它唯一的目的是用来帮助识别前面数字中的错误。下面是一种计算校验位的方法,首先把第 1、3、5、7、9、11 位数字相加,然后把第 2、4、6、8、10 位数字相加,接着把第 1 次加法的结果乘以 3,再和第 2 次加法的结果相加;随后再把上述结果减去 1;相减后的结果除以 10 取余数 (1)编写一个程序来计算任意通用产品代码的校验位。要求用户录入通用产品代码的前 11 位数字,然后程序显示出相应的校验位。为了避免混淆,要求用户分 3 部录入数字: 左边的第一个数字、第一组 5 位数字以及第二组 5 位数字,程序会话形式如下 Enter the first (single) digit:0 Enter first group of five digits:13800 Enter second group of five digits:15173 Check digits:5 (2)重写(1),使用户可以一次输入 11 位数字,而不用先录入 1 位,再录入 5 位, 最后再录入 5 位 Enter the first 11 digits of UPC:01380015173 Check digit:5 10.欧洲国家不适用北美的 12 位通用产品代码(UPC),而使用 13 位的欧洲商品编码 (Europen Article Number,EAN)。跟 UPC 一样,每个 EAN 码的最后也有一个校验位。计 算校验位的方法也类似:首先把第 2 位、第 4 位、第 6 位、第 8 位、第 10 位和第 12 位数 字相加;然后把第 1 位、第 3 位、第 5 位、第 7 位、第 9 位和第 11 位数字相加;接着把第 1 次加法的结果乘以 3,再和第 2 次加法的结果相加;随后,再把上述结果减去 1;相减后 的结果除以 10 取余数;最后用 9 减去上一步骤中得到的余数。 以某商品为例,EAN 码为 8691484260008。第一个和为 6+1+8+2+0+0=17,第 2 个和为 8+9+4+4+6+0=31。第一个和乘以 3 再加上第 2 个和得到 82,减 1 得到 81。这个结果除以 10 的余数是一,再用九减去余数得到吧,与原始编码的最后一位一致。用户把 EAn 的前 12 位当作一个数输入 Enter the first 12 digits of EAN:869148426000 Check digit:8

程序员灯塔
转载请注明原文链接:https://www.wangt.cc/2020/11/%e5%ae%9e%e9%aa%8c%e4%ba%8c-5/
喜欢 (0)