C语言创新问题
下面程序段的运行结果是()。#include"stdio.h"main(){intm=10,n=20;char*format="%s,m=%d,n=%d\n";m*=n;...
下面程序段的运行结果是()。
#include "stdio.h"
main()
{
int m=10, n=20;
char *format="%s, m=%d, n=%d\n";
m*=n;
printf(format, "m*=n", m,n);
}
A. format, "m*=n", m, n B. format, "m*=n"
C. m*=n, m=200, n=20 D. 以上结果都不对 展开
#include "stdio.h"
main()
{
int m=10, n=20;
char *format="%s, m=%d, n=%d\n";
m*=n;
printf(format, "m*=n", m,n);
}
A. format, "m*=n", m, n B. format, "m*=n"
C. m*=n, m=200, n=20 D. 以上结果都不对 展开
5个回答
展开全部
楼主,我给你提供了思路,函数怎么用就看你了,不管挂不挂科,你都要自己动手,别人最多给你思路,帮你弄好了,那你叫那么多钱学费不是白交,好好想想怎么用那些给出来的函数吧
#include <stdio.h>
#include <stdlib.h>
int ins(int a[],int n,int x)/*在数组中插入一个数,该数存在x中*/
{ int p=0,i ;
while (x>a[p]&&p<n) p++;printf("p=%d",p);
for (i=n; i>p-1; i--) a[i+1]=a[i]; a[p]=x;
return (n+1);
}
void selsort1(int a[],int n)/*选择排序*/
{
int i,temp,j;
for(i=0;i<n-1;i++)
for(j=1;j<n-i ;j++)
if(a[j-1]>a[j] )
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
printf("排序结果:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
void selsort(int a[],int n)/*冒泡排序*/
{
int i,temp,j;
for(i=0;i<5;i++)
for(j=1;j< 6-i ;j++)
if(a[j-1]>a[j] )
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
printf("排序结果:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int del(int a[],int n,int x)/*在数组中删除一个数,该数存在x中*/
{ int p=0,i ;
while (x>=a[p]&&p<n) p++;
for (i=p-1; i<n; i++) a[i]=a[i+1];
return (n-1);
}
int bins(int a[],int n,int x)/*在有序数组中查找一个数,该数存在x中*/
{
int top,bot,find,mid;
top=0; bot=n-1; find=0;
do{mid=(top+bot)/2;
if(x==a[mid]){
find=1;}
else if(x<a[mid]) bot=mid-1;
else if(x>a[mid]) top=mid+1;
}while(top<=bot && !find);
return find;
}
void input(int a[][10],int n,int m)/*矩阵输入*/
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
}
void output(int a[][10],int n,int m)/*矩阵输出*/
{
int i,j;
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
void transpose(int a[][10],int n)/*矩阵转置*/
{
int i,j,temp;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
{temp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;}
}
int sum(int a[][10],int n,int m)/*求外围元素之和*/
{
int i,j,sum=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(i==0 || i==n-1 || j==0 || j==m-1)
sum=sum+a[i][j];
return sum;
}
void jzc(int a[][3],int b[][2],int c[][2])/*两矩阵相乘*/
{
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
void main()
{
int a[10];
int n,x;
int i,choice1,choice2,choice3;
while(1)
{
LOOP1:
printf("\n\n\n\t\t\t\t主菜单\n\n");
printf("\t\t\t 1.输入一个数组\n\n");
printf("\t\t\t 2.输入一个矩阵\n\n");
printf("\t\t\t 3.退出\n\n");
printf("\t\t\t 请输入你的选择:");
scanf("%d",&choice1);
if(choice1==3)
{
system("cls");
printf("感谢使用!\n");
break;
}
switch(choice1)
{
case 1:
system("cls");
printf("请输入一个10个元素的数组:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
system("cls");
LOOP2:
printf("\n\n\n\t\t\t 1.为数组插入一个数\n\n");
printf("\t\t\t 2.为数组进行排序(选择法)\n\n");
printf("\t\t\t 3.为数组进行排序(冒泡法)\n\n");
printf("\t\t\t 4.删除数组中一个数\n\n");
printf("\t\t\t 5.查找数组中一个数\n\n");
printf("\t\t\t 6.返回主菜单\n\n");
printf("\t\t\t 你的选择:");
scanf("%d",&choice2);
switch(choice2)
{
case 1:system("cls");break;
case 2:system("cls");break;
case 3:system("cls");break;
case 4:system("cls");break;
case 5:system("cls");break;
case 6:system("cls");goto LOOP1;
default:goto LOOP2;
}
break;
case 2:
system("cls");
break;
}
}
}
#include <stdio.h>
#include <stdlib.h>
int ins(int a[],int n,int x)/*在数组中插入一个数,该数存在x中*/
{ int p=0,i ;
while (x>a[p]&&p<n) p++;printf("p=%d",p);
for (i=n; i>p-1; i--) a[i+1]=a[i]; a[p]=x;
return (n+1);
}
void selsort1(int a[],int n)/*选择排序*/
{
int i,temp,j;
for(i=0;i<n-1;i++)
for(j=1;j<n-i ;j++)
if(a[j-1]>a[j] )
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
printf("排序结果:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
void selsort(int a[],int n)/*冒泡排序*/
{
int i,temp,j;
for(i=0;i<5;i++)
for(j=1;j< 6-i ;j++)
if(a[j-1]>a[j] )
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
printf("排序结果:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int del(int a[],int n,int x)/*在数组中删除一个数,该数存在x中*/
{ int p=0,i ;
while (x>=a[p]&&p<n) p++;
for (i=p-1; i<n; i++) a[i]=a[i+1];
return (n-1);
}
int bins(int a[],int n,int x)/*在有序数组中查找一个数,该数存在x中*/
{
int top,bot,find,mid;
top=0; bot=n-1; find=0;
do{mid=(top+bot)/2;
if(x==a[mid]){
find=1;}
else if(x<a[mid]) bot=mid-1;
else if(x>a[mid]) top=mid+1;
}while(top<=bot && !find);
return find;
}
void input(int a[][10],int n,int m)/*矩阵输入*/
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
}
void output(int a[][10],int n,int m)/*矩阵输出*/
{
int i,j;
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
void transpose(int a[][10],int n)/*矩阵转置*/
{
int i,j,temp;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
{temp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;}
}
int sum(int a[][10],int n,int m)/*求外围元素之和*/
{
int i,j,sum=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(i==0 || i==n-1 || j==0 || j==m-1)
sum=sum+a[i][j];
return sum;
}
void jzc(int a[][3],int b[][2],int c[][2])/*两矩阵相乘*/
{
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
void main()
{
int a[10];
int n,x;
int i,choice1,choice2,choice3;
while(1)
{
LOOP1:
printf("\n\n\n\t\t\t\t主菜单\n\n");
printf("\t\t\t 1.输入一个数组\n\n");
printf("\t\t\t 2.输入一个矩阵\n\n");
printf("\t\t\t 3.退出\n\n");
printf("\t\t\t 请输入你的选择:");
scanf("%d",&choice1);
if(choice1==3)
{
system("cls");
printf("感谢使用!\n");
break;
}
switch(choice1)
{
case 1:
system("cls");
printf("请输入一个10个元素的数组:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
system("cls");
LOOP2:
printf("\n\n\n\t\t\t 1.为数组插入一个数\n\n");
printf("\t\t\t 2.为数组进行排序(选择法)\n\n");
printf("\t\t\t 3.为数组进行排序(冒泡法)\n\n");
printf("\t\t\t 4.删除数组中一个数\n\n");
printf("\t\t\t 5.查找数组中一个数\n\n");
printf("\t\t\t 6.返回主菜单\n\n");
printf("\t\t\t 你的选择:");
scanf("%d",&choice2);
switch(choice2)
{
case 1:system("cls");break;
case 2:system("cls");break;
case 3:system("cls");break;
case 4:system("cls");break;
case 5:system("cls");break;
case 6:system("cls");goto LOOP1;
default:goto LOOP2;
}
break;
case 2:
system("cls");
break;
}
}
}
展开全部
运行结果为C。
代码基础解析:
#include "stdio.h"
int main(){
int m=10, n=20; //定义并赋值m、n
char *format="%s, m=%d, n=%d\n"; //创建指针变量format,并赋字符串值
m*=n;
printf(format, "m*=n", m,n); //输出字符串"m*=n",以及m和n的值
//上一句等同于:printf("%s, m=%d, n=%d\n", "m*=n", m,n);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
等效于
printf("%s, m=%d, n=%d\n", "m*=n", m,n);
所以输出
m*=n,m=200,n=20
选C
printf("%s, m=%d, n=%d\n", "m*=n", m,n);
所以输出
m*=n,m=200,n=20
选C
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询