1、若调用一个整形函数,且此函数中没有return语句,则正确的是说法是 D
A、该函数没有返回值 B、该函数能返回若干个系统默认值
C、能返回一个用户所希望的函数值 D、返回一个不确定的值
2、在c语言中一下不正确的说法是 B
形参需要接收,需要类型定义
A、实参可以是常量、变量、或表达式 B、形参可以是常量、变量或表达式
C、实参可以为任意类型 D、形参应与其对应的实参类型一致
3、以下程序的运行结果是 C
#include <stdio.h>
#define ADD(x) x+x
int main()
{
int m=1,n=2,k=3,sum;
sum=ADD(m+n)*k;
printf("%d\n",sum);
return 0;
}
A、18 B、9
C、12 D、10
4、在宏定义#define PI 3.1415926中,用宏名PI代替一个 B
A、双精度数 B、常量
C、单精度数 D、字符串
5、降序显示雇员和总工时
#include <stdio.h>
void jx(int a[8][7],int i,int j);
void px(int a[2][8],int b);
int main()
{
int gs[8][7]={{2,4,3,4,5,8,8},
{7,3,4,3,3,4,4},
{3,3,4,3,3,2,2},
{9,3,4,7,3,4,1},
{3,5,4,3,6,3,8},
{3,4,4,6,3,4,4},
{3,7,4,8,3,8,4},
{6,3,5,9,2,7,9}};
int i,j,sum=0;
printf("\t Su M T W Th F Sa\n");
for(i=0;i<8;i++)
{
printf("Employee%d ",i);
for(j=0;j<7;j++)
printf("%d ",gs[i][j]);
printf("\n");
}
jx(gs,8,7);
return 0;
}
void jx(int a[8][7],int i,int j)
{
int sum=0,max=0,c;
int e=8;
int b[2][8]={{0,1,2,3,4,5,6,7},{0}};
// for(i=0;i<8;i++)
// {
// printf("Employee%d ",i);
// for(j=0;j<7;j++)
// printf("%d ",a[i][j]);
// printf("\n");
// }
for(i=0;i<8;i++)
{
sum=0;
for(j=0;j<7;j++)
{
// printf("%d ",sum);
sum=sum+a[i][j];
// printf("%d ",sum);
}
b[1][i]=sum;
}
// for(i=0;i<2;i++)
// {
// for(j=0;j<8;j++)
// printf("%d ",b[i][j]);
// printf("\n");
// }
// printf("Employee\t");
px(b,8);
// for(i=7;i>=0;i--)
// {
// printf(" %d ",b[0][i]);
//
// }
for(i=7;i>=0;i--)
{
printf(" %d ",b[1][i]);
}
// printf("\n");
// printf("\n总工时\t\t");
//
// for(i=7;i>=0;i--)
// {
// printf(" %d ",b[1][i]);
//
// }
}
// printf("%d\n",b[7]);
// for(j=0;j<7;j++)
// {
// for(i=0;i<e;i++)
// {
// if(b[i]<b[i+1])
// {
// c=i-1;
// max=b[i];
// b[i]=b[i+1];
// b[i+1]=max;
// }
// }
// e--;
// printf("Employee%d\t%d\n",c,max);
// }
//
//麻了 应该用二维数组...
void px(int a[2][8],int b)
{
int i,y,n,c,d,max,j;
c=b;
for(y=0;y<b-1;y++)
{
for(i=0;i<c-1;i++)
{
d=0;
if(a[1][i]>a[1][i+1])
{
n=a[1][i];
a[1][i]=a[1][i+1];
a[1][i+1]=n;
j=a[0][i];
a[0][i]=a[0][i+1];
a[0][i+1]=j;
}
}
c--;
}
// for(i=0;i<2;i++)
// {
// for(j=0;j<8;j++)
// printf("%d ",a[i][j]);
// printf("\n");
// }
printf("雇员标号\t");
for(i=0;i<2;i++)
{
for(j=7;j>=0;j--)
printf("%d ",a[i][j]);
printf("\n总工时 \t");
}
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b ");
}
// int sum_1=0,sum_2=0;
// int c,d;
//
//
//
// printf("\n\n");
// for(d=0;d<8;d++)
// {
// sum_1=0;
// for(i=0;i<7;i++)
// sum_1+=a[0][i];
// for(i=0;i<8-d;i++)
// {
// sum_2=0;
// for(j=0;j<7;j++)
// {
// sum_2+=a[i][j];
// }
// if(sum_2>=sum_1)
// {
// c=i;
// sum_1=sum_2;
// }
// else
// c=i-1;
// }
// printf("Employee%d %d \n",c,sum_1);
//
// }
//
//printf("%d\n",sum_1);
// for(i=7;i>=e;i--)
// {
// sum_2=0;
// for(j=0;j<7;j++)
// {
// sum_2+=a[i][j];
// }
// printf("%d\n",sum_2);
// if(sum_2<sum_1)
// {
// for(c=0;c<7;c++)
// {
// b[c]=a[i+1][c];
// a[i+1][c]=a[i][c];
// a[i][c]=b[c];
// d=i+1;
// }
// }
// else
// sum_1=sum_2;
// }
// printf("Employee%d\t",d);
// for(c=0;c<7;c++)
// {
// printf("%d ",b[c]);
// }
// printf("\n");
// e++;
// d=0;
// }
2、用函数实现十进制转2进制,设定二进制最大存储64位,注意考虑正负情况。
#include <stdio.h>
void zheng(int a[64],int i);
void fu(int a[64],int i);
int main()
{
int er[64]={0};
long long int num;
char ch;
int i;
printf("请输入一个十进制整数(加上正负号):");
ch=getchar();
scanf("%lld",&num);
for (i=0;i<64;i++)
{
er[63-i]=num%2;
num=num/2;
}
if(ch=='+')
{
printf("该十进制数转换为二进制数为:");
zheng(er,64);
}
else
fu(er,64);
return 0;
}
void zheng(int a[64],int i)
{
for(i=0;i<64;i++)
{
printf("%d",a[i]);
}
}
void fu(int a[64],int i)
{
for(i=0;i<64;i++)
{
if(a[i]==0)
a[i]=1;
else
a[i]=0;
}
for(i=63;i>=0;i--)
{
if(a[i]==0)
{
a[i]=1;
break;
}
else
a[i]=0;
}
for(i=0;i<64;i++)
{
printf("%d",a[i]);
}
}