编写一个函数,将时间设为3个整数参数(时、分、秒)并返回从零点起开始计算的秒数。利用该函数计算给定两个时间(24小时内)之间的秒数。
请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。
例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <stdio.h>
include <string.h>
long fun(char *p)
{
}
main ()
{
char s[6];
long n;
printf("Enter a string:\n");
gets(s);
n=fun(s);
printf("%ld\n",n);
}
请编写函数fun(),该函数的功能是:将两个两位数的正整数a,b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45时,b=12,调用到该函数后,c=5142。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <stdio.h>
include<conio.h>
void fun(int a ,int b, long *c)
{
}
main ()
{
int a,b;
long c;
clrscr();
printf("Input a ,b:");
scanf(,%d%d",&a,&b);
fun(a,b,&c);
printf("The result is :%ld\n",c);
}
A.参数的值是否改变与函数中对变量的操作有关,与参数类型无关
B.参数是组合类型(可变对象)时,改变原参数的值
C.参数是整数类型时,不改变原参数的值
D.参数是列表类型时,改变原参数的值
印制电路板将布线区域划分成n×m个方格阵列(见图6-3(a).精确的电路布线问题要求确定连接方格a的中点到方格b的中点的最短布线方案.在布线时,电路只能沿直线或直角布线(见图6-3(b).为了避免线路相交,已布线了的方格做了封锁标记,其他线路不允许穿过被封锁的方格.
算法设计:对于给定的布线区域,计算最短布线方案.
数据输入:由文件input.txt给出输入数据.第1行有3个正整数n、m.k,分别表示布线区域方格阵列的行数、列数和封闭的方格数.接下来的k行中,每行2个正整数,表示被封闭的方格所在的行号和列号.最后的2行,每行也有2个正整数,分别表示开始布线的方格(p,q)和结束布线的方格(r,s).
结果输出:将计算的最短布线长度和最短布线方案输出到文件output.txt.文件的第1行是最短布线长度.从第2行起,每行2个正整数,表示布线经过的方格坐标.如果无法布线,则输出“NoSolution!".
大兵瑞恩被关押在迷宫的东南角,即(N,M)单元里,并已经昏迷.迷宫只有一个入口,在西北角.也就是说,麦克可以直接进入(1,1)单元.另外,麦克从一个单元移动到另一个相邻单元的时间为1,拿取所在单元钥匙的时间及用钥匙开门的时间可忽略不计.
算法设计:试设计一个算法,帮助麦克以最快的方式到达瑞恩所在单元,营救大兵瑞恩.
数据输入:由文件input.txt提供输入数据.第1行有3个整数,分别表示N、M、P的值.第2行是1个整数K,表示迷宫中门和墙的总数.第1+2行(1≤I≤K),有5个整数,依次为Xi1、Yi1、Xi2、Yi2、Gi:
当Gi≥1时,表示(Xi1,Yi1)单元与(Xi2,Yi2)单元之间有一扇第Gi类的门;当Gi=0时,表示(Xi1,Yi1)单元与(Xi2,Yi2)单元之间一堵不可逾越的墙(其中,|Xi1-X2|+Yi1-Yi2|=1,0≤Gi≤P).
第K+3行是一个整数S,表示迷宫中存放的钥匙总数.
第K+3+J行(1≤J≤S)有3个整数,依次为Xi1、Yi1、Qi;表示第J把钥匙存放在(Xi1、Yi1)单元里,并且第J把钥匙是用来开启第Qi类门的(其中1≤Qi≤P).
输入数据中同一行各相邻整数之间用一个空格分隔.
结果输出:将麦克营救到大兵瑞恩的最短时间值输出到文件output.txt.如果问题无解,则输出-1.