1.
#include
int z=1;
void p(int *x,int y){
++(*x);
y=y-1; z=*x+y+z
printf("%d,%d,%d",*x,y,z);
}
void main(){
int x=1,y=5,z=9; p(&x,y);
printf("%d,%d,%d",x,y,z);
}
答案:2,4,7 2,5,9
解析:先运行main函数,x=1,y=5,z=1;
x=1+1=2,y=5-1=4,z=2+4+1=7;所以输出2,4,7
x=1,x=5,x=9,p(&x,y),p()是一个函数,该函数的第一个参数是一个指针,第二个参数是一个数值。y的值和它调用函数p()之前的值还是一个样。
x=2,y=5,z=9
2.
#include
void main{
int i,j,row=0,column=0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,5,2}};
max=a[0][0];
for(i=1;i<3;i++)
for(j=0;j<2;j++){
if a[i][j]>max{
max=a[i][j]; row=i;column=j;
}
}
printf("max=%d,row=%d,column=%d\n",max,row,column);
}
答案:max=10,row=2,column=1
解析:二维数组a[3][4]表示有3行和4列,在该数组中最大的数值是10。
i<3,j<2,row=i,column=j,所以row=2,column=1。
3.
#include
int main(){
int i,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10){
case 0:m++;n++;
case 10;n++;break;
default:k++;n++;
}
printf("%d,%d,%d\n",m,n,k);
return 0
}
答案:1 4 2
解析:9/10=0,m=0+1=1,k=0+1=1,n=0+1=1;
10/10=1
4.
#include
int f(int m){
static int k=2;k++;
return k+m;
}
void main(){
int s,x=2;s=f(2);
printf("%d,%d\n",s,f(s));
}
答案:5.9
解析:s=2时,m=2,k=2+1=3,so s=f(2)=5,f(s)=3+1+5=9
5.
#include
int main(){
int a=1,b=0;
if(a=b){
b++;
}
else if(a=0){
b+=2;
}else{
b+=3;
}
printf("%d\n",b);
return 0;
}
答案:3
用选择法对10个浮点数按从小到大排序。
#include
int main(){
int i,j,min;
float temp,a[10];
printf("enter data:\n");
for(i=0;i<10,i++){
scanf("%f",&a[i]);
}
for(i=0;i<0;i++){
min=i;
}
for (j=j+1;j<10;j++){
if (a[min]>a[j]){
min=j;
}
}
temp=a[min];
a[min]=a[j];
a[i]=temp;
printf("\n the sorted numbers:in");
for(i=0;i<10;i++)
printf("%6.2f",a[i]);
printf("\n");
return 0;}
1.对输入的两个整数按大小顺序输出。用函数处理,而且用指针类型的数据作函数参数。
#include
void swap(int *x,int *y){
int t;
if(*x<*y){
t=*x;
*x=*y;
*y=t;
}
}
void main(){
int a,b,*p1,*p2;
scanf("%d&d\n",&a,&b);
p1=&a;
p2=&b;
swap("%d%d\n",a,b);
}
2.在主函数中用gets()输入一个字符串,调用自定义函数replace()将其中所有的her替换成she,最后在主函数中输出结果,若输入的字符串中不包含her,应输出相应的提示。
#include
#include
void replace(char a[]){
int i;
for(i=0;i
3.请编写程序完成两个矩阵相乘。要求A是x行y列的矩阵,B是y行z列的矩阵,结果A*B。
#include
#define row 4
#define col 3
void mat_mub(const int a[4][3],const int b[3][4],int c[3][3]){
int i,j,k;
for(i=0;i<3;i++){
c[i][j]=0;
for(k=0;k<4;k++){
c[i][j]=b[i][k]*a[k][j];
}
}
}}
int main(void)
{
int i,j;
int a[clo][cow];
int b[cow][clo];
int c[cow][cow];
mat_mub(a,b,c);
printf("显示数组C中的元素:\n");
for(i=0;i
4.节点结构体定义如下:
Struct NODE{
NODE *link;
int value;}Node;
请编写两个函数Node*create()和int count_nodes(Node *root)。其函数功能分别为创建一个单向链表、统计单向链表的节点个数。
#include
#include
#define len sizeof(struct NODE)
struct NODE{
NODE*link;
int value;
}Node;
int n;
int main(){
int num;
struct NODE Node* Create();
int Count_nodes(Node *root);
struct NODE *head;
struct NODE *p1,*p2;
n=0;
p1=p2(struct NODE*)malloc(LEN);
scanf("%d",&p1->value);
head=null;
while(p1->Value!=0){
n=n+1;
if(n==1)head=p1;
else p2->link=p1;
p2=p1;
p1=(struct NODE*)malloc(LEN);
scanf("%d",&p1->Value);
}
p2->link=null;
return(head);}
int count_nodes(Node*root){
int num;
struct NODE *p;
p=head;
num=0;
if(p!=null)
do{
++num;
p=p->link;
} while(p!=null
return(num);
}
5.请编写一个程序实现图书信息管理的功能
要求:(1)能够插入每个图书的书号、书名、出版日期、出版社和简介;
(2)能够显示每本书的相关信息。
#include
struct book{
char num[10];
char name[10];
long Date[10];
char ed[10];
char in[20];
}book[s];
int main(){
int i,Char ch[10];
for(i=0,Char ch[10]){
print("书名");
scanf("%s"&book[i].num);
printf("图书列表");
printf("书名简介");
for(i=0;i<5,i++)
printf("%s%5s%5d%5s%5s\n",book[i].num,"书","名","简","介");
return 0;
}
}