全国软件专业人才开发与设计赛题之简单题

3.1计算手机通话时长,系统提供开始与结束时间,输出两时间的时间差

输入格式:24:34代表24分34秒

标准输入:24:34 58:23

输出对应的秒数

 1  #include  < stdio.h >
 2  int  main()
 3  {
 4       int  pmin,psec,nmin,nsec; // 用于对前后时间保存
 5       while (scanf( " %d:%d %d:%d " , & pmin, & psec, & nmin, & nsec) != EOF)
 6      {
 7           if (nsec < psec)nmin = ( 60 + nmin - 1 ) % 60 ; // 如果结束秒数比开始秒数小,需要调整分钟数
 8           int  diffsec = (nsec - psec + 60 ) % 60 + ((nmin - pmin + 60 ) % 60 ) * 60 ;
 9          printf( " %d\n " ,diffsec); // 输出为
10      }
11       return   1 ;
12  }

 

 3.2有一种特殊的两位数,比如:25

其平方625的末尾两位正好和25相同。

请写程序计算所有这样的二位数,由小到大排列,每个数据占一行

 1  #include  < stdio.h >
 2  int  main()
 3  {
 4       for ( int  i = 10 ;i < 100 ;i ++ )
 5      {
 6           if (((i - 1 ) * i) % 100 == 0 ) // i*i-i等价与(i-1)*i 由于题目仅仅是对两位数进行处理,所以可以采用%100的方式
 7              printf( " %d\n " ,i);
 8      }
 9       return   1 ;
10  }

 

 3.3在某些场所,我们需要对计量数据和单位进行分割,并进行输出。

举例:1.5kg 

输出:

1.5

kg 

请写程序进行分割输出。

 1  #include  < stdio.h >
 2  #include  < string .h >
 3  /* ------------------------
 4  由于题意只是要求对数字和单位分离
 5  但是,数据的格式需要保留,所以
 6  本程序思路:
 7  首先分别一行的所有信息至sourcestr[]
 8  然后sscanf对sourcestr进行分离数据和单位字符串
 9  进而在读取的sourcestr中匹配单位字符串的位置
10  然后对sourcestr字串进行分离输出
11  ------------------------- */
12  int  main()
13  {
14       char  sourcestr[ 50 ];
15       char  desstr[ 50 ];
16       double  dnumber = 0 ; // 双精度数据
17       int  position = 0 ;
18       while (scanf( " %s " ,sourcestr) != EOF)
19      {
20           //
21          sscanf(sourcestr, " %lf%s " , & dnumber,desstr);
22           // 寻找单位出现的位置,进行提取数字
23          position = strcspn(sourcestr,desstr);
24           for ( int  i = 0 ;i < strlen(sourcestr);i ++ )
25          {
26               if (i == position)
27                  printf( " \n " );
28              putchar(sourcestr[i]);
29          }
30          printf( " \n " );
31      }
32       return   1 ;
33  }

 

3.4输出今年有多少毫秒(提示:今年不是闰年) 

1  #include  < stdio.h >
2  #include  < string .h >
3  int  main()
4  {
5       // 这里用365.0提升数据的表示范围,防止数据的溢出
6       // 输出进行类型转换long
7      printf( " %ld\n " ,( long )( 365.0 * 24 * 60 * 60 * 1000 )); // 365天*24小时*60分钟*60s*1000毫秒 
8       return   1 ;
9  }

 

 

 

 

你可能感兴趣的:(全国软件专业人才开发与设计赛题之简单题)