❶ c语言数组字符选择题
选c,会发生错误。
strcpy本来是用来复制一个字符串到另一个地址上,可是,如果s1的预分配地址空间大小小于s2,在复制的过程中肯定会溢出,也就是会报错
❷ C语言选择题 求大家帮忙看看 能帮我说说执行过程吗 谢谢
按你的书写,字符串 中第一个字符是空格,执行结果不在4个答案中。
另外,你用了中文标点符号,语法通不过。
char s〔〕={ “ Girl”} ; //声明s是char型数组,初始化为 char s[6]; 内容为:空格,字母Girl, 和字符串结束符'\0';
s〔0〕=s〔2〕 ; //赋值语句,让s[0]里的空格符位置变s[2]里的i; 字符串变:"iGirl";
s〔2〕=s〔0〕; //赋值语句,让s[2]变s[0]里的i; 字符串:"iGirl";
s〔1〕=s〔4〕; // 赋值语句,让s[1]里的G变s[4]里的l; 字符串变:"ilirl"
s〔4〕=s〔1〕; // 赋值语句,让s[4]变s[1]里的l; 字符串:"ilirl";
执行结果 i,lirl 不在4个答案中。
程序改为用英文书写,去掉第一个空格:
char s[]={"Girl"} ; //初始化 char s[5]="Girl";
s[0]=s[2]; // 字符串变为 "rirl"
s[2]=s[0]; // 字符串变为 "rirl"
s[1]=s[4]; // s[4] 是字符串结束符号 '\0', 赋值后s[1] 也成字符串结束符,字符串变为 "r",
s[4]=s[1]; // 字符串 还是 "r", 因 s[1] 是字符串结束符号 '\0',
( char s[5] 的内容为:r\0rl\0, 其中2个 \0 是字符串结束符)
printf("%c,%s\n",s[0],s); // 输出 r,r 答案选 B.
❸ C语言的几道选择题
1、下面程序的功能是将字符串s中所有的字符’c’删除。请选择填空。
#include<stdio.h>
main()
{
char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=’\0’;i++)
if(s[i]!=’c’);
s[j]=’\0’;
puts(s);
}
(C)s[j]=s[i];j++
2. 下述对C语言字符数组的描述中错误的是
(C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
3. 下列关于文件的结论中正确的是
B.对文件的操作必须先打开文件
4. 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该是
B. “wb+”
5. 有下面的程序段:
char a[3], b[] = "China";
a = b;
printf("%s", a);
则
(D) 编译出错
6. 要打开一个已存在的非空文件“file.dat”用于修改,正确的语句是
D. fp=fopen(“file.dat”,"r+”);
7. 下列语句中,将c定义为文件型指针的是
B. FILE *c;
8. C语言中,对文件操作的一般步骤是
A. 打开文件->操作文件->关闭文件
❹ C语言选择题(最好解释)
len和str分别是3和9
c中字符串的长度len计算的结束标志就是遇到\0,所以就是3
字符串大小,就是整个字符串的大小了,\0也是一个字符,所以就是9
❺ C语言字符串赋值的选择题~!~~~~要理由哦~~~谢谢
嗯,lx说的对,是第三个错了。char str[10]是定义了一个数组,注意,这里的数组名“str”在c中被解释为是这个数组第一个元素的地址。显然,如果你要给地址赋一个名为“computer”的值是荒谬的
❻ 关于c语言指针 字符串 选择题不会 求答案
选择答案B。
❼ c语言 字符串选择题12求详解
fun函数实际就是strcat函数的简单实现, 即实现字符串t和s的拼接。
函数中第一个while循环先遍历t到t的末尾,此时t指针指向的char存储的是字符串末尾标志'\0';
第二个while循环将字符串s的每个字符都复制到t中,包括最后一个'\0',所以结果就是t在其尾部拼接上了s的所有内容。
其实关键的语句就是第二个while中的 *t++=*s++,这里++运算的优先级比*高,所以相当于*(t++)=*s(++), 而t++是首先取t的值,然后再将t加一,s的右半部分类似,这样就实现了逐个字符的复制,直到*s=‘\0’赋值给*t后导致表达式的结果为0,从而while退出,此时刚好完全复制完了s中的内容,即已实现拼接的目的。
❽ c语言选择题:字符串"\\\\aaa\\'ccc\bddd\\""的长度是多少
\\\\aaa\\'ccc\bddd\\"是个C语言的错误字符串组合,编译都不会过的,谈不上长度了!如果是\\\aaa\'ccc\bddd\"的话长度是13,分解如下
\\ \a a a \' c c c \b d d d \",共13个字符。但若屏幕上输出则只能看到\aa'cccddd"等11个字符,其中\a和 \b是动作字符,看不见。
(若帮助了你,请采纳)
❾ C语言的选择题 怎么选
选C。首先把b[2]起始的字符串拷贝到起始位置为a[1]的地方。a数组保存的是″a2"。再把c[1]开始的字符串和字符串a连接,结果为字符串″a2yz"。
❿ 关于C语言字符串的两个选择题。
先说答案 第一次选C,第二题选A,马上补上原理
先说第一题,第一题的fun函数的内部代码实现的功能是:
1、传入一个数组的首地址和数组长度;
2、让指针p1和p2分别指向数组的首尾元素;
3、如果p1的地址小于p2的地址,用s承接当前p1所指元素,然后p1向后移动一位,p1移动后所指位置的元素替换成p2当前所指元素的内容,然后p2向前移动一位,然后将p2现在所指位置的元素内容替换成s的内容;
4、依次循环下去,直到p1所指地址不小于p2,因为数组的内存空间是连续的,所以在p1指向数组前一半元素的时候,此循环都会进行下去;
建议楼主可以自己在纸上画画,模拟一下函数的过程,马上就明白了。稍后补上第二道题原理
第二道题涉及到两个知识点,第一是通过指针操作二维数组,第二是ASCII码的操作
1、首先通过第一个for循环,将二维数组的两个行的初始坐标交给指针数组的两个元素,这样方便指针数组操作;
2、两个for循环的嵌套,是取字符数组每一维的详间隔的元素,也就是隔一个元素,取一个元素,判断条件是字符数组没结束并且字符数组的ASCII码小于等于9(在这里可以理解为限定为数字字符),然后减去0对应的ASCII码,这样就知道这个数字是多少了,然后套用公式,最后就能算出结果