⑴ c语言问题 ,谁能帮我解释一下A B C D各代表什么意思
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据
wb+ 读写打开或建立一个二进制文件,允许读和写
rb+ 读写打开一个二进制文件,允许读数据。
ab 以附加的方式打开只写二进制文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
给你一个完整版:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rt+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
⑵ c语言a是97,b是98那么ab是多少呢
我觉得你对字符和字符串概念有些不清楚。最明显的区别是字符单引号,字符串双引号.
作为字符时, 'a' = 97 = 0x61。比如char x = 'a'.可以明确知道x的值为字符'a'
作为字符串时“a”,它没有一个明确的值.比如char *s = "a";意思是s是一个指针,指向了一个字符串,该字符串的内容是"a",字符串包含了字符'a'
你说的ab应该是"ab",是字符串。
⑶ C语言编程问题:输入一个字符串,再输入一个字符ab,将字符串中所有的ab字符删除后输出该字符串。
#include <stdio.h>
void delchar(char* str, char c) {
int i = 0, j = 0;
while (str[j] != 0) {
if (str[j] != c) {
str[i] = str[j];
i++;
}
j++;
}
str[i] = 0;
}
int main()
{
char s[100];
while (scanf("%s", s) != EOF) {
delchar(s, 'a');
printf("[%s]\n", s);
}
return 0;
}
想象两个下标一个i一个j。j一直向前走,如果碰到要剔除的字符就跳过去,但是i不跳过去,如果不是要剔除的字符就复制给i,然后i也前进,这样就把要剔除的字符删掉了。只用遍历一遍,用strcpy发现一个要删除的字符就复制一遍,额外多做了很多无用功。
⑷ C语言 解释一下AB
选C
C语言中真可用1表示,假则是0,所以A%2相当于取余数奇数时则是1为真,而前面有个!则是取相反运算,所以即奇数时结果为假,与题设不符
A选项==运算符,表达式结果肯定是Bool型,所以A%2对于奇数结果是1,1==1这个表达是正确的,也就是真,
B选项只不过前面多了个取反运算,括号内是对偶数结果的判断,偶数时总的结果为假,奇数时总的结构为真
⑸ C语言交换ab的值
你好,
%f表示float,浮点型。
虽然和int的大小一样,但是在C语言中,float和int的存储方式不一样。
这样就会导致值不正确的问题,
理论上可以使用强制转换,来去除警告和使值变正确。
祝你生活愉快。
⑹ 在C语言中,’ab’是否为合法的字符型常量,为什么
不合法,字符型单引号之间只能有一个字符,如果是多个的话就要用双引号,并且它也是字符串了。
⑺ c语言 中'ab'的值
a的ASCII码是10进制的97,16进制的61,b的ASCII码是10进制的98,16进制的62,顺序写到一起是16进制的6162,转换为10进制就是24930。
'ab'占用2个字节(字面上是这样),赋给int类型变量在某些编译器(如Dev-C++)中是可能的,但没有推广价值,也米有应用价值,所以这也不会出现在考试、或者笔试题目中。
⑻ C语言的问题,这道题的AB选项有啥区别
第一个函数可能是自己定义的函数,不一定是main函数。但C语言执行一定从main函数开始,并在main函数中结束执行。
⑼ 该c语言程序的输出结果为Ab,如何理解
我也是初学着,看到指针也是头疼的很,不过我每次看到指针都问三个问题,指针指向的什么类型,指针指向的是什么,指针本身是什么类型,搞明白这三个问题,我发现很多问题我能解决啦。
char c1='A',c2='a',*p1,*p2;//定义了字符型的指针,指向字符类型
p1=&c1;p2=&c2;//p1指向了c1='A',p2指向了c2='a'
之后调用fun函数传入实参p1,p2
a=b//也就是p1=p2,p1不在等于&c1了,p1=p2=&c2了,没c1什么事了
(*a)++;//这句动的是c2,a=p1=&c2,*a=*p1=c2='a'又加了个括号后自加一,字符自加一应该按ascii码计算97+1=98,b的ascii码为98,
让打印的是c1,c2,显然c1没变为A,c2变了为b,所以结果为打印Ab
⑽ C语言问题,输入ab两个整数按顺序输出。用指针做。
在swap()函数中,交换的并不是两个指针,而是两个指针指向的地址内存放的两个变量(也就是a与b)。
试比较一下:
int
*temp;
temp=p1;
p1=p2;
p2=temp;
这才仅仅是交换的指针指向的地址(p1p2两个指针指向地址的内容a与b并没有发生改变)。