C语言编程作业,求解答
发布时间:2025-05-13 06:07:21 发布人:远客网络
一、C语言编程作业,求解答
1、作业1:result(int)= c(char)* i(int)+ f(float)/ d(double)-(f+ i);
2、第一步:f+i,一个float和int相加,按精度高的float进行计算,结果为float
3、result= char* int+ float/double- float;
4、第二步:char* int,他们都是整数相加为int
5、result=int+ float/double- float;
6、第三步:float/double,按精度高的double进行计算结果为double
7、第四步:int+ double结果为double
8、第五步:double- float结果为double,result为整形,赋值给整形会强制把double转化成int,保留整数。
9、原因,swap的形参是值传递,实参传值给形参,子函数无法改变实参的值;要改变得传址。
10、顺序查找法适应性好,可以适用在无序和有序数组查找;
11、折半查找法只适用于有序数组,无序查找会失败;但是在有序数组查找时查找效率高于顺序查找。
二、c语言作业
a.在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示
b.可以通过赋初值的方式确定数组元素个数
c.数组名代表数组所占存储区的首地址,其值不可变
d.对于double类型数组,不可直接用数组名对数组进行整体输入或输出
A.定义函数时,形参的类型说明可以放在函数体内
B.如果形参与实参的类型不一致,则以实参类型为准
D.如果函数值类型与return后的返回值类型不一致,则以函数值类型为准
给定下列程序,则运行结果为(B)
void fun(int x, int y, int* z)
printf(“%d,%d,%d\n”, a, b, c);
C语句int*func();中,func表示的是(A)
C语言规定,若未对函数返回类型加以说明,则函数的隐含类型为(B)
已有定义char a[]="xyz", b[]={'x','y','z'}以下叙述正确的是 c
a.数组a的存储空间长度小于数组b的存储空间长度
c.数组a的存储空间长度大于数组b的存储空间长度
A.函数的类型可以是整型、实型、字符型,但不能是指针类型
B.在没有声明函数返回值类型的情况下,默认函数返回值类型为int型
C. C语言规定,不能在一个函数的内部再定义函数
D.函数可以没有形参,但函数名后的括号不能省略
若已定义的函数有返回值,则以下关于该函数调用的叙述错误的是(A)
A.函数调用可以作为左值而被赋值
B.函数调用可以作为独立语句存在
C.函数调用可以作为一个函数的实参
{ char a[]={'a','b','c','d','e','f','g','h','\0'};
阅读下列程序段,其执行结果为(C)
printf("d=%lf\n", fun(a, b, c));
double fun(int a, int b, int c)
以下不能正确定义二维数组的选项是(A)
A. int a[2][]={{1, 2},{3, 4}};
在C语言中,对变量的访问方式是(C)
C语句: int(* pa)[5];中,pa表示的是一个(A)
A.指向包含5个整型元素的一维数组的指针
B.在一个函数内定义的变量只在本函数范围内有效
C.在不同的函数中可以使用相同名字的变量
D.在一个函数的复合语句中定义的变量只在本函数范围内有效
三、求-c语言程序设计作业。请大家帮帮忙-_-~
#define ENTER 0x1c0d/*回车键*/
#define Backspace 0xe08/*擦除键*/
#define ALT_B 12288/*组合键ALT_B*/
#define ALT_M 12800/*组合键ALT_M*/
#define ALT_H 8960/*组合键ALT_H*/
int textx,texty;/*光标坐标,x行,y列*/
struct menustruct/*菜单用的结构体*/
}ml[3];/*使用了3个,可根据需要增删*/
typedef struct BookList/*书的结构体*/
int yes;/*判断书是否存在或者已经借出,1存在,0借出*/
typedef struct MemberList/*会员的结构体*/
char save[4096];/*保存文本区域空间*/
void Selectitem();/*定义菜单*/
void DrawSelectitem();/*显示主菜单*/
void BlackText(int x,int y,char*z);/*选中菜单*/
void RedText(int x,int y,char*z);/*正常菜单*/
void DrawMl(int n);/*显示下拉菜单*/
void MoveMl(int n,int x);/*菜单选项的控制*/
void Enter(int m,int n);/*菜单选项的具体功能*/
void BookConsult();/*图书查询*/
void BookDel();/*删除图书资料*/
void MemberConsult();/*查询会员*/
void MemberBook();/*查询会员借书信息*/
void ClrScr();/*自定义清屏函数*/
void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*画边框*/
system("cls");/*调用系统的清屏命令*/
textbackground(BLUE);/*将背景设置为蓝色*/
printf("%c",218);/*画左上角*/
printf("%c",196);/*画水平直线*/
printf("%c",191);/*画右上角*/
printf("%c",179);/*画垂直线*/
printf("%c",192);/*画左下角*/
printf("%c",217);/*画右下角*/
cprintf("%c",219);/*用符号实现画主菜单的灰色背景区*/
Selectitem();/*调用选项函数*/
gettext(2,3,78,23,c);/*保存当前文本区域*/
strcpy(ml[0].name,"Book");/*下面的具体选项补空格是为了各菜单黑色背景相同*/
strcpy(ml[0].str[0],"Add");/*添加图书*/
strcpy(ml[0].str[1],"Consult");/*查询图书*/
strcpy(ml[0].str[2],"Del");/*删除图书资料*/
strcpy(ml[0].str[3],"Borrow");/*借书*/
strcpy(ml[0].str[4],"Return");/*还书*/
strcpy(ml[0].str[5],"Exit");/*退出系统*/
strcpy(ml[1].str[0],"Add");/*添加新会员*/
strcpy(ml[1].str[1],"Consult");/*查询会员资料*/
strcpy(ml[1].str[2],"Del");/*删除会员资料*/
strcpy(ml[1].str[3],"Member&book");
strcpy(ml[2].name,"Help");/*系统帮助*/
strcpy(ml[2].str[0],"This System");
RedText(i,1,ml[i].name);/*显示主菜单名,且首字母为红色*/
void RedText(int x,int y,char*z)
textbackground(7);/*设置背景颜色为浅灰色*/
textcolor(RED);/*第一个字母显示红色*/
textcolor(BLACK);/*设置黑色*/
cprintf("%c",z[j]);/*输出菜单名*/
void BlackText(int x,int y,char*z)
textbackground(0);/*设置背景颜色为黑色*/
textcolor(15);/*设置文本颜色为白色*/
gotoxy(3+20*x,y);/*定位坐标*/
cputs(z);/*输出菜单名字符串*/
case ESC: DrawMl(0);break;/*显示下拉菜单1*/
case ALT_M: DrawMl(1);break;/*显示下拉菜单2*/
case ALT_H: DrawMl(2);/*显示下拉菜单3*/
case UP:/*上光标键的操作控制*/
case DOWN:/*下光标键的操作控制*/
case LEFT:/*左光标键的操作控制*/
case Backspace:/*擦除键的设置*/
texty--;/*擦除键的细节问题,先擦去东西,然后光标还要往后退一格*/
case RIGHT:/*右光标键的操作控制*/
gotoxy(texty,textx);/*空格的细节操作*/
case ENTER:/*回车的控制操作*/
if(texty==79&&textx==23)/*到达最后就不再输出*/
if(texty==79&&textx!=23)/*到行的最后*/
gotoxy(texty,textx);/*输出结果*/
if(texty==79)/*如果texty==79就不执行*/
else/*如果没到行尾就继续执行,使光标向前移动一位*/
void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)
textbackground(bcolor);/*背景颜色*/
textcolor(bcolor);/*文本颜色*/
for(i=l;i<=r;i++)/*输出背景区域*/
printf("%c",219);/*输出背景字符*/
textcolor(tcolor);/*边框颜色*/
for(i=u+1;i<d;i++)/*在背景区域内输出边框线*/
/* gettext(l+1,u+1,r-1,d-1,save1);*//*保存边框内区域*/
gettext(1,1,80,25,save);/*保存被掩盖的地方*/
BlackText(n,1,ml[n].name);/*反选显示主菜单*/
DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜单的边框*/
for(i=3;i<3+ml[n].n;i++)/*输出所选菜单各选项*/
BlackText(n,i,ml[n].str[i-3]);/*默认选中第一项*/
RedText(n,i,ml[n].str[i-3]);/*其余各项首字符红色显示*/
MoveMl(n,3);/*菜单选项的控制*/
/*菜单选项的控制,n决定水平项,x决定下拉的选项*/
puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/
puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/
if(n==0)/*往左移动越界的话移到最后一个选项*/
case RIGHT:/*移动右边的选项*/
puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/
if(n==2)/*往右移动越界的话移到第一个选项*/
RedText(n,x,ml[n].str[x-3]);/*输出红色字体*/
if(x==3)/*移到最上面再按上键,就移到最下面*/
x--;/*移动到新的要显示的内容*/
BlackText(n,x,ml[n].str[x-3]);/*输出黑色字体*/
case DOWN:/*具体选项往下移动*/
if(x==(3+ml[n].n-1))/*移动到最底下再按下键就移到最上面*/
x++;/*移动到新的要显示的内容*/
BlackText(n,x,ml[n].str[x-3]);
puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/
Enter(n,x-3);/*菜单选项的具体功能*/
case 0:switch(n)/*选择了图书菜单选项*/
case 0:BookAdd();break;/*添加图书*/
case 1:BookConsult();break;/*图书查询*/
case 2:BookDel();break;/*删除一本图书资料*/
case 3:BookBorrow();break;/*借书*/
case 4:BookReturn();break;/*还书*/
case 1: switch(n)/*选择了会员菜单选项*/
case 0: MemberAdd();break;/*添加会员*/
case 1: MemberConsult();break;/*会员查询*/
case 2:MemberDel();break;/*删除一个会员资料*/
case 3:MemberBook();/*查询某个会员所借图书情况*/
case 2:switch(n)/*选择了帮助菜单选项*/