A. c语言,字符数组问题,请看我所写的代码哪里有错误,提交答案的时候总是提示格式错误
printf("%d ",n);错了。
比如期望输出是:3空格4空格5空格3
你的输出是:3空格4空格5空格3空格
你可以判断
if(i1==0) printf("%d",n)
else printf(" %d",n);
B. 求一份答案 C语言编程:实验四 数组
7. 编写程序打印出如下杨辉三角形。
解答: (1)源程序代码:(2)运行结果截图:(3)运行结果分析:
#include<stdio.h>
#define N 10
void main()
{
int s[N][N];
for(int i=0;i<N;i++)
{
S[i][0]=s[i][i]=1;
}
for(i=2;i<N;i++)
for(int j=1;j<I;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
for(i=0;i<N;i++)
{ for(int j=0;j<=i;j++)
printf(“\t%d”,s[i][j]);
printf(“\n”);
}
}
8. 分析下列程序,查错并修改。
#include <stdio.h>
#include <string.h>
void main()
{ char a[10],b[10];
int c,d,k; char ch;
scanf("%s",&a);---à scanf("%s",a);
scanf("%s",&b); --à scanf("%s",b);
printf("a=%s,b=%s\n",a,b);
c=strlen(a);
d=strlen(b);
if(c>d)
for(k=0;k<d;k++)
{ch=a[k];a[k]=b[k];b[k]=ch;}
printf("a=%s\n",a);
printf("b=%s\n",b);
}
解答:(1) 源程序代码:(2)运行结果截图:(3)运行结果分析:
9.预习下面的程序的功能,写出预习结果。并上机验证。
#include <stdio.h>
#include <string.h>
void main( )
{ char s1[80], s2[40];
int i = 0, j = 0;
printf(" \n Please inputstring1:");
scanf("%s", s1);
printf(" \n Please inputstring2:");
scanf("%s", s2);
while (s1[i]!= '\0' )
i++;
while (s2[j]!= '\0' )
s1[i++]=s2[j ++];
s1[i]= '\0';
printf("\n New string: %s",s1);
}
解答:(1)运行结果截图:(2)运行结果分析:
S2附加到S1的最后
10. 补充以下程序,使其功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下:
#include <stdio.h>
void main ( )
{ char str1[100],str2[100];
int i,s;
printf("\n Input string1:\n");gets(str1);
printf(“\n Input string2:\n”);gets(str2);
i= 0 (1) ;
while((str1[i]==str2[i])&&(str1[i]!= ‘\0’ (2) ))
i++;
s= str1[i]=str2[i] (3) ;
printf("%d\n",s);
}
解答:(1) 源程序代码:(2)运行结果截图:(3)运行结果分析:
11. 补充以下程序,功能是统计从终端输入字符串中每个大写字母的个数。用#号作为输入结束标志。
#include <stdio.h>
#include <ctype.h>
void main ( )
{ int num[26],i; char c;
for (i=0;i<26;i++)num[i]=0;
while ( (c=getchar())(1) != '#') /* 统计从终端输入的大写字母个数*/
if (isupper(c))num[c-65]++ (2) ;
for (i=0;i<26;i++) /* 输出大写字母和该字母的个数*/
if (num[i])printf("%c:%d\n",i+65 (3) ,num[i]);
}
解答: (1)源程序代码:(2)运行结果截图:(3)运行结果分析:
12.编写程序,功能是输入若干个字符串,求出每个字符串的长度,并打印最长的字符串的内容。以“stop”作为输入的最后一个字符串。
解答:(1)源程序代码:(2)运行结果截图:(3)运行结果分析:
13.编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如:输入"BEIJING"、"123"和位置3,则输出:"BEI123JING"。解答: (1)源程序代码:(2)运行结果截图:(3)运行结果分析:
C. c语言,望高手求解(31)下面是有关C语言字符数组的描述,其中错误的是
这道题是选D,
因为每个字符都可以用整数来表示,最常用的就是ASCII码,我们知道char其实是byte类型,也就是1个字节(2^8即0-256之间的数字),就是说它可以存0-256之间的所有整数所以不只是字符,当然ASCII码也在0-256之间。。
另外,我们还可以通过内存拷贝的方式把整数赋值给字符数组:
int number = 9956;
char str[4];
memcpy((void*)&str, (void*)&a, 4); // 把number变量拷贝4字节数据到str变量。
其实任何语言都有基础类型,而所有的基础类型都是基于字节(byte)来存储的,这个类型能存储什么东西完全取决于它所占用的字节数。
A的说法是正确的,在C语言里面赋值语句不能直接给字符数组赋值,因为C语言的功能还比较单一,只能两个单一的变量赋值,不支持数组赋值。
C语言使用起来有很多不方便之处,所以就有了C++。
如果没有清楚的话,可以给我留言。
D. C语言解题(字符串数组)
用字符串分割函数 按英文字母或数字分割 分出的个数就是结果
这里需要用到正则表达式的知识可以网络 就不给你写本体代码了 自己阅读下正则表达式相关的 在看看下面的strtok函数用法 基本上这题你就能自己解决了
strtok
语法:
#include <string.h>
char *strtok( char *str1, const char *str2 );
功能:函数返回字符串str1中紧接“标记”的部分的指针, 字符串str2是作为标记的分隔符。如果分隔标记没有找到,函数返回NULL。为了将字符串转换成标记,第一次调用str1 指向作为标记的分隔符。之后所以的调用str1 都应为NULL。
例如:
char str[] = "now # is the time for all # good men to come to the # aid of their country";
char delims[] = "#";
char *result = NULL;
result = strtok( str, delims );
while( result != NULL ) {
printf( "result is \"%s\"\n", result );
result = strtok( NULL, delims );
}
以上代码的运行结果是:
result is "now "
result is " is the time for all "
result is " good men to come to the "
result is " aid of their country"
E. C语言数组实验题
半年没有写代码了,手生得特别严重,写这样的基础题都费了我好大功夫,脑子转不过来#include<stdio.h>
#include<string.h>
int main()
{
int i;
char ch,str[81];
printf("请输入一个字符:");
scanf("%c",&ch);
printf("请输入一个以回车结尾的字符串:");
scanf("%s",str);
for (i = 0; i<strlen(str); i++)
{
if (str[i] == ch)
{
printf(" %d", i);
if (i == strlen(str) - 1) printf("
");
}
else if (i == strlen(str) - 1) printf("Not Found
");
}
return 0;
}
F. 这是关于计算机二级c语言中字符数组还有字符串的问题,求解答
你程序是错的吧!A,B是什么,应该是a,b吧而且你输出时候的格式设置怎么会那样应该“%s%s\n”才对啊!如果修改之后结果应该是wer is redFig flo is blue对吧?
分析如下:
首先是输入了七个字符按你的就是Fig flo(七次循环输入)存到了b字符组中,刚好替代了the sky部分,而其余你输入的部分按照程序存到了a中,显示的结果由a与b无间隔连接而成,就成了那样。
G. 谁有程序设计基础 C语言 实验与习题指导 杨永斌的课后习题答案
http://wenku..com/view/dabadf330b4c2e3f572763af.html有实验的答案,没有习题的答案
H. C语言实验设计 实验六 数组
main()
{ int a[10],n,i,j,_________________; /*定义,下面出现了min
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",______________________); /*依次存储数据a[i]
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d",a[i]);
printf("\n");
for(i=0;i<_______________________;i++) /*最大为n-2,倒数第二个
{min=i;
for(j=___________________;j<n;j++) /*从第二个开始 j=i+1
if(a[j]<a[min])_________________; /*a[i]=a[j]交换小的到前面
ax=____________________;
a[i]=a[min];
____________________=ax;} /*a[min],
printf("after sort:array\n");
for(i=0;i<n;i++)
printf("%d", a[i]);
printf("\n");
}
这份代码有比较大问题,我觉得不科学
我修改了下
main()
{ int a[10],n,i,j,min;
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",a[i]);
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<n-2;i++)
{min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
{ a[i]=a[j];
a[i]=a[min]; }
}
printf("after sort:array\n");
for(i=0;i<n;i++)
printf("%d ", a[i]);
printf("\n");
}
I. C语言中的字符数组问题
首先明确字符串到底是什么,我可以用下面一句话对其进行定义:
C的字符串就是以0结束的字节流.
char ch1[10]={'h','e','l','l','o'};
很明显, 这是一块内存, 前5字节被赋为hello, 由于栈变量初始化的规则, 剩余字节全部设为0, 所以, 这就符合了C字符串定义.
char ch2[10]={'h','e','l','l','o','\0'};
很明显, 这也是一块内存, 前6字节被赋为hello外加一0, 也符合了C字符串定义.
所以,他们都可以看成字符串..
还有就是,字符数组和字符串不能混淆... 字符数组究竟是不是字符串, 还得看是否有0结束.