1.
#include <stdio.h>
void main()
{
char c1, c2, c3, c4, c5, c6;
scanf("%c%c%c%c", &c1, &c2, &c3, &c4);
c5 = getchar();
c6 = getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n", c5, c6);
}
结果程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是(D)。
A.1267
B.1256
C.1278
D.1245
因为:[解析] 本题考查的是输入输出函数。scanf()是格式化输入函数;getchar()函数从键盘缓冲区读入下一个字符;putchar(J输出一个字符;printf()函数是格式化输出函数。在题目中,程序执行到scanf()函数时,会暂停等待用户输入4个字符,按题意输入123<回车>后,字符1~3被分别输入到c1-c3中,而c4会得到一个换行符’\n’。然后执行第1个getchar()函数,由于前面的scanf()函数读完了缓冲区中的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678<回车>后,缓冲区第一个字符4输入到C5,第二个字符5输入到C6,所以本题应该选择D) 。
2.
题目
代码:
#include <stdio.h>
#define N 7
/**********found**********/
void fun(int (*a)[N])//由下面可知a是一个数组
{ int i,j,k,m;
if(N%2==0) m=N/2 ;
else m=N/2+1;//m=4,最中间的为4,也表示是有m层
for(i=0; i<m; i++) {
/**********found**********/
for(j=i; j<N-i; j++)
a[i][j]=a[N-i-1][j]=i+1;
for(k=i+1; k<N-i; k++)
/**********found**********/
a[k][i]=a[k][N-i-1]=i+1;
}
}
void main()
{ int x[N][N]={0},i,j;
fun(x);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%3d",x[i][j]);
printf("\n");
}
}
结果:
2.
题目:
代码
#include <stdio.h>
#include <conio.h>
/*************found**************/
void fun(int m,int k)
{ int aa[20], i;//aa是用来存放余数
for(i=0;m;i++)
{
/*************found**************/
aa[i]=m%k;//求余操作
m/=k;
}
for(;i;i--)//逆序遍历出来
/*************found**************/
printf("%d",aa[i-1]);
}
void main()
{
int b,n;
printf("\nPlease enter a number and a base:\n");
scanf("%d%d",&n,&b);
fun(n,b);
printf("\n ");
}
结果:
3.题目
代码
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *fun(char (*a)[81], int num, char *max)//三个参数:字符串数组,字符串个数,最长字符串
{
int i;//定义遍历的循环下标
max=a[0];//定义max的初始化值为数组a的第一个字符串,得到一维数组首地址a[0]
for(i=0;i<num;i++){
if(strlen(max)<strlen(a[i])){
max=a[i];
}
}
return max;
}
void main()
{
FILE *wf;
char ss[10][81],*ps=NULL;//定义了二维数组SS
char s[3][81]={"abcd","deg","diegns"},*p=NULL;//定义了二维数组s
int i=0,n;
system("CLS");
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i], "****")==0) /*用4个星号作为结束输入的标志*/
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
ps=fun(ss,n,ps);//里面的ps是一个空指针
printf("\nmax=%s\n",ps);//找打到最长的字符串
/******************************/
wf=fopen("out.dat","w");
p=fun(s,3,p);
fprintf(wf,"%s",p);
fclose(wf);
/*****************************/
}
结果