strcpy(s1,s2)的用法
- 格式:docx
- 大小:123.36 KB
- 文档页数:2
C程序设计复习题(二)C程序设计复习题(二)一、选择1、下面程序的运行结果是______#include#includemain(){ char a[80]=”AB”,b[80]=”LMNP”;int i=0;strcat(a,b);while(a[i++]!=’\0’) b[i]=a[i];puts(b);}A)LB B)ABLMNP C)AB D)LBLMNP2、下面程序的功能是将字符串s中所有的字符c删除。
请选择填空。
#includemain(){ 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);}A) s[j++]=s[i]; B)s[++j]=s[i]; Cs[j]=s[i];j++; D) s[j]=s[i];3、有下面的程序段:char a[3],b[]=”China”;a=b;printf(“%s”,a);则_______________。
A)运行后将输出China B)运行后将输出ChC)运行后将输出Chi D)编译出错4、下面程序段的运行结果是_______char a[7]=”abcdef”;char b[14]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A)<空格> B)\0 C)e D)f5、以下正确的说法是______在C语言中:A) 实参和与其对应的形参各占用独立的存储单元;B) 实参和与其对应的形参共占用一个存储单元;C) 只有当实参和与其对应的形参同名时才共同占用存储单元;D) 形参是虚拟的,不占用存储单元。
6、以下程序的运行结果是______fun(int x){ if(x/2>0) fun(x/2-2);printf(“%d”,x);}main(){ fun(20);printf(“\n”);}A)20 8 2 -1 B)2 8 20 C)8 D)-1 2 8 207、以下正确的说法是________如果在一个函数的复合语句中定义了一个变量,则该变量______A) 只在该复合语句中有效B) 在本程序范围内均有效C)在该函数中有效D) 为非法变量8、若使用一维数组名作为函数实参,则以下正确的说法是______A)必须在主调函数中说明此数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组与形参数组名必须一致9、若有定义:int a[4][6];则能正确表示a数组中任一元素a[i][j](此处0≤i<4, 0≤j<6)地址的表达式是________。
strcpy函数的用法strcpy(s1,s2);strcpy函数的意思是:把字符串s2中的内容copy到s1中,连字符串结束标志也一起copy.这样s1在内存中的存放为:ch\0;在cout<<s1<<endl时,结果为ch;事实上,在内存里面是这样的存储结构:ch\0na如果说s1的长度是6,那是错误的.你没有弄清strlen与sizeof的意思。
strlen函数的意思是测试字符串的字符长度,不含字符串结束标志的。
sizeof是个运算符,它的结果是字符串在内存中的所占字节大小,它要把\0算进去的。
strcpy函数原型1char * strcpy(char *a,char *b){ while((*(a++)=*(b++))!=0);return a;}strcpy函数原型2char *strcpy(char *strDest, const char *strSrc);//strDest为目标,strSrc为源{assert((strDest!=NULL) && (strSrc !=NULL)); //如果两个为空则不用复制,直接中止char *address = strDest; //用address指向strDest开始地址while( (*strDest++ = * strSrc++) != ‘\0’ ) //复制,直到源串结束;NULL ; //空操作return address ; //返回strDest开始地址}}//就这个算法看来是多余.#include <iostream>using namespace std;int main(int argc,char *argv[]){char s1[6]="china" ,s2[3]="ch";cout<<s1<<endl; //chinacout<<strlen(s1)<<endl; //5cout<<sizeof(s1)<<endl; //6strcpy(s1,s2);cout<<s1<<endl; //chfor (int i=0;i<5;i++){cout<<s1[i]<<endl;}cout<<strlen(s1)<<endl; //2cout<<sizeof(s1)<<endl; //6return 0;}CSDN博客频道“移动开发之我见”主题征文活动【分享季1】:网友推荐130个经典资源,分享再赠分!C语言中函数strcpy ,strncpy ,strlcpy的用法分类:C/C++2010-03-05 18:161766人阅读评论(1)收藏举报strcpy ,strncpy ,strlcpy的用法好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。
2021年山东省青岛市全国计算机等级考试C语言程序设计预测试题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.在下列运算符中,优先级最低的是()。
A.||B.!=C.<D.+2.如有inta=11;则表达式(a/1)的值是()。
A.0B.3C.4D.113. 要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。
A.while((ch—getchar)!=N)printf("%c",ch);B.while(oh=getchar!=N)printf("%c",ch);C.while(ch=getchar==N)printf("%c",ch);D.while((ch—getchar)==N)printf("%c",ch);4.若有定义语句:“int x=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。
A.1.9B.1C.2D.2.45. 若已包括头文件且已有定义char sl [18],s2={"ABCDE")和int i,现要将字符串”ABCDE”赋给sl,下列语句错误的是( )。
A.strcpy(s1,s2)B.strcpy(s1,"ABCDE");C.sl="ABCDE";D.for(i=0;i<6;i++)sl[i]=s2[i]6.有如下程序:main{ int a=2,b=-1.c=2;if(a<b)if(b<0)c=0;else c++;printf("%d\n",c);}该程序的输出结果是( )。
A.A.0B.1C.2D.37.在非线性结构中,每个结点()。
strcpy与strcmp的用法一、strcpy的用法(一)基本用法1. 在C语言中,strcpy函数用于将一个字符串复制到另一个字符串中。
例如,假设我们有两个字符数组,`char source[] = "Hello";`和`char destination[10];`,我们可以使用`strcpy(destination, source);`。
这样,`destination`数组就会包含和`source`一样的字符串,就像有一个小助手把`source`中的字符一个一个地搬到`destination`里一样,是不是很神奇呢?2. `strcpy`函数会从源字符串的开头开始复制,直到遇到字符串结束标志`'\0'`为止。
如果目标字符串的空间不够大,就可能会导致缓冲区溢出,这就像是把太多东西硬塞进一个小盒子里,盒子会撑破的,这可是个很严重的错误哦。
3. 你知道吗?`strcpy`函数在处理字符串复制的时候就像一个勤劳的小工匠,按照顺序精准地把字符从一个地方挪到另一个地方。
比如我们定义`char str1[] = "Goodbye";`和`char str2[20];`,当我们执行`strcpy(str2, str1);`,`str2`就变成了`Goodbye`。
(二)固定搭配(与字符数组、字符串常量等)4. 当我们想要复制一个字符串常量到一个字符数组时,`strcpy`就派上用场了。
例如,`char arr[50];`,`strcpy(arr, "This is a test");`。
这就好像把一张写着`This is a test`的纸条上的字原封不动地抄到一个本子(`arr`)上。
5. 有时候我们在函数内部处理字符串,`strcpy`也能很好地和函数参数中的字符数组搭配。
比如有一个函数`void myFunction(char dest[], const char src[])`,在函数内部可以使用`strcpy(dest, src);`来完成复制操作,就像是在一个小工作室里传递任务,从`src`这个源头拿到信息复制到`dest`这个目的地。
二级C语言模拟题2018年(169)(总分100, 做题时间90分钟)选择题1.下面函数的功能是______。
sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==s++));return(*s-*t);}SSS_SINGLE_SELA 将字符串s复制到字符串t中B 比较两个字符串的大小C 求字符串的长度D 将字符串s接续到字符串t中分值: 2答案:B2.下面能正确进行字符串赋值的是______。
SSS_SINGLE_SELA char s[5]={"ABCDE");B char s[5]={"A","B","C","D","E"};C char*s;s="ABCDE";D char*s;printf("%s",s);分值: 2答案:C3.字符串“\\"ABCDEF"\\”的长度是______。
SSS_SINGLE_SELA 15B 10C 7D 8分值: 2答案:B4.若有char s[3][4]={"AAA","BBB","CCC"};说明语句,则与它等价的语句是______。
SSS_SINGLE_SELA char**s={"AAA","BBB","CCC"};B char*s[3]={"AAA","BBB","CCC"};C char s[][5]={"AAA","BBB","CCC"};D char s[][4]={"AAA","BBB","CCC"};分值: 2答案:D5.已知char**s,下面正确的语句是______。
strcpy的用法1. 简介在 C 语言中,strcpy 函数用于复制一个字符串到另一个字符串。
该函数需要两个参数:目标字符串和源字符串。
目标字符串用来储存源字符串,并且必须已经分配足够的空间来容纳源字符串。
源字符串可以是字符数组或字符指针。
2. 语法```cchar* strcpy(char* dest, const char* src);```参数说明:- dest:要复制到的字符串。
- src:要复制的字符串。
函数返回值:- 目标字符串 dest 的指针。
3. 实例分析例如,我们要将字符串 "hello, world!" 复制到另一个字符串中:strcpy(str2, str1);printf("str1: %s\n", str1);printf("str2: %s\n", str2);```输出如下:```str1: hello, world!str2: hello, world!```除了字符数组,我们还可以使用字符指针的方式复制字符串:输出结果与前面一致。
需要注意的是,如果目标字符串的空间不足以存储源字符串,那么会发生未定义行为。
这就是为什么在使用 strcpy 函数时应该确保目标字符串已经分配足够的空间,或者考虑使用更安全的函数,例如 strncpy。
另外,由于 strcpy 函数会一直复制字符直到遇到字符串结束符 '\0',因此在源字符串没有结束符的情况下,可能会发生无限循环导致程序崩溃。
因此,在将字符串复制到未知大小的缓冲区时,一定要谨慎处理异常情况。
第7章数组1.下列数组声明中,正确的是()。
(a)int a[5]={0}; (b) int a[ ]={0 1 2};(c) int a[5]=0; (d) int a[ ];2.下列数组声明中,正确的是()。
(a)int a[10];(b)int n = 10, a[n];(c)int N =10; int a[N];(d)int n; scanf(" %d ", &n); int a[n];3.已知int a[10];则对a数组元素引用不正确的是()。
(a)a[10] (b) a[3+5] (c) a[10-10](d) a[5]4.以下数组定义中,正确的是()。
(a)int a[2][3] = {1, 2, 3, 4, 5, 6, 7};(b)int a[ ][ ] = {{1, 2, 3},{4, 5, 6},{7, 8,9}};(c)int a[2][ ] = {1, 2, 3, 4, 5, 6};(d)int a[ ][4] = {6};5.若有定义: int a[3] = {0, 1, 2}; 则a[1]的值为()。
(a)0 (b) 1 (c) 2 (d)36.若有定义:inta[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为()。
(a)0 (b) {1,2} (c) 1 (d)37.有如下定义int a[ ][3] = {1,2,3,4,5,6,7,8};则数组a 的行数是()。
(a) 2 (b) 3 (c) 4 (d) 无法确定的8.getchar( )函数的功能是从终端输入()。
(a)一个整型变量值(b) 一个实型变量值(c)多个字符(d) 一个字符9.设已定义chars[ ]="\"Name\\Address\023\n";,则字符串所占的字节数是()。
(a)19 (b) 15 (c) 18(d)1410.以下程序段运行后屏幕输出为()。
strcpy()函数一、strcpy()函数的简介strcpy()函数:是将一个字符串复制到另一块空间地址中的函数,‘\0’是停止拷贝的终止条件,同时也会将'\0' 也复制到目标空间。
下面是库中的strcpy()函数声明:char* strcpy(char* destination,const char* source);1. 函数的参数:char* destination---------目标字符串的首地址const char* source------源地址:被复制的字符串的首地址,用const修饰,避免修改掉被拷贝的字符串2.函数的返回值类型:char*:返回的是目标字符串的首地址二、strcpy()函数的具体使用场景一:#define _CRT_SECURE_NO_W ARNINGS#include <stdio.h>#include <string.h>int main(){char arr[10] = "########";printf("%s\n", strcpy(arr,"hello"));return 0;}输出的结果场景二:#define _CRT_SECURE_NO_W ARNINGS#include <stdio.h>#include <string.h>int main(){char arr1[10] = "**********";char arr2[10] = "abcd";printf("%s\n", strcpy(arr1, arr2));return 0;}输出结果三、使用strcpy()函数的注意事项1.源字符必须以'\0'结束:#define _CRT_SECURE_NO_W ARNINGS#include <stdio.h>#include <string.h>int main(){char arr1[10] = "**********";char arr2[] = { 'a','b','c','d' };printf("%s\n", strcpy(arr1,arr2));return 0;}这里的代码会出错,'\0'是停止拷贝的终止条件,arr2字符数组所在的内存空间后面存储的内容并不知道,不遇到'\0' 拷贝就不会停止,这就会导致越界访问,程序就会出现问题。
C语⾔基础知识总结⼤全1.⼊门程序#include <stdio.h>int main(){printf("Hello World!");return 0;}2.数据类型数据类型:1.基本数据类型:1.1. 整型:int 4个字节1.2. 字符型:char 1个字节1.3. 实型(浮点型)1.3.1.单精度型:float 4个字节1.3.2.双精度型:double 8个字节2.构造类型:2.1.枚举类型2.2.数组类型2.3.结构体类型2.4.共⽤体类型3.指针类型:4.空类型:3.格式化输出语句%d:⼗进制整数;%c:单个字符;%s:字符串;%f:6位⼩数;#include <stdio.h>int main(){int age = 18;float height = 1.85;char unit = 'm';printf("⼩明今年%d岁\n", age);printf("⼩明⾝⾼%f%c\n", height, unit);printf("⼩明现在在慕课⽹上学习IT技术\n");return 0;}4.常量值不发⽣改变的量成为常量;定义字符常量(注意后⾯没有;)#include <stdio.h>#define POCKETMONEY 10 //定义常量及常量值int main(){printf("⼩明今天⼜得到%d元零花钱\n", POCKETMONEY);return 0;}5.1.算数运算符:+,-,*,/,%,++,--;前++/--,先运算,再取值.后++/--,先取值,再运算;5.2.赋值运算符:5.3.关系运算符;5.4.逻辑运算符;5.5.三⽬运算符:表达式1 ? 表达式2 : 表达式3;6.⽔仙花数计算输出所有三位数的⽔仙花数字所谓“⽔仙花数”是指⼀个三位数,其各位数字⽴⽅和等于该数,如:153就是⼀个⽔仙花数,153=111+555+333。
c++中的strcpy函数================C 语言中的 strcpy 函数是一个用于字符串复制的函数,它在标准库中提供,被广泛用于字符串处理。
本篇文章将为您详细介绍strcpy 函数的用途、函数原型、使用方法和注意事项。
一、用途----strcpy 函数的主要用途是将一个字符串复制到另一个字符串。
它可以将一个源字符串复制到目标字符串变量中,实现字符串的赋值操作。
二、函数原型------strcpy 函数的原型定义在 <string.h> 头文件中,其函数形式如下:```cchar *strcpy(char *dest, const char *src);```这个函数接受两个参数:目标字符串的指针 `dest` 和源字符串的指针 `src`。
它会将 `src` 所指向的字符串复制到 `dest` 中,并返回 `dest` 的指针。
三、使用方法------在使用 strcpy 函数时,需要注意以下几点:1. 目标字符串 `dest` 必须事先分配足够的空间,以容纳源字符串 `src` 的内容。
否则可能会导致内存溢出,从而引发程序错误。
2. 源字符串 `src` 必须以空字符('\0')结尾,否则 strcpy 函数无法正确复制字符串。
3. 如果目标字符串 `dest` 和源字符串 `src` 位于同一个数组中,则不能使用 strcpy 函数进行复制,因为这可能导致未定义的行为。
下面是一个使用 strcpy 函数的示例代码:```c#include <stdio.h>#include <string.h>int main() {char dest[20] = "Hello, ";const char *src = "World!";strcpy(dest, src);printf("%s\n", dest); // 输出 "Hello, World!"return 0;}```在上面的示例中,我们将源字符串 "World!" 复制到了目标字符串 "Hello, " 中,并成功输出了结果。
C语言上机题库百科园第5章!南信大!第五章单选有以下程序,程序运行后的输出结果是( )#include <stdio.h>#include <string.h>int main(){char a[20]=”ABCD\0EFG\0”,b[]=”IJK”;strcat(a,b); printf(“%s\n”,a);return 0;}A.ABCDE\0FG\0IJKB.ABCDIJKC.EFGIJKD.IJK有以下程序,程序运行后的输出结果是 ( )#include<stdio.h>int main(){ char s[]="012xy\08s34f4w2";int i, n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);return 0;}A.7B.0C.8D.3下列选项中,能够满足"若字符串s1等于字符串s2,则执行ST"要求的是 ( )A.if(strcmp(s2,s1)==0)ST;B.if(s1-s2==0)ST;C.if(strcpy(s1,s2)==1)ST;D.if(s1==s2)ST;以下选项中正确的语句组是()A.char s;s={"BOOK!"};B.char s[];s="BOOK!";C.char s[10];s="BOOK!";D.char s[]="BOOK!";以下数组定义中错误的是()A.int x[2][3]={{1,2},{3,4},{5,6}};B.int x[2][3]={1,2,3,4,5,6};C.int x[][3]={0};D.int x[][3]={{1,2,3},{4,5,6}};若有定义语句:int m[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()A.m[m[0]]B.m[2*2]C.m[--i]D.m[m[i]]下列选项中,能正确定义数组的语句是()A.int num[];B.int N=2008;int num[N];C.int num[0…2008];D.#define N 2008int num[N];有以下程序,程序运行时若输入:how are you? I am fine<回车>则输出结果是()#include<stdio.h>int main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("%s\n %s\n",a,b);return 0;}A.how are you?I am fineB.how are you? I am fineC.howare you?I am fineD.how are you?下面是有关C语言字符数组的描述,其中错误的是()A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串int aa[MAX];printf("输入一个整数");scanf("%d",&limit);sum=fun(limit,aa);for(i=0;i<sum;i++){if(i%10==0&&i!=0) /*每行输出10个数*/printf("\n ");printf("%5d ",aa[i]);}/******************************/ wf=fopen("debug\\2.out","w");sum=fun(15,aa);for(i=0;i<sum;i++)fprintf(wf,"%d\n",aa[i]);fclose(wf);/*****************************/ return 0;}【参考代码】int i,j,k=0;for(i=2;i<=lim;i++){for(j=2;j<i;j++)if(i%j==0) break;if(j>=i)aa[k++]=i;}return k;/*请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。
CC++strcpy,strncpy,strcpy_s,strncpy_s联系与区别C++中,复制C风格字符串的⽅法有4种:strcpy, strncpy, strcpy_s, strncpy_s。
它们有什么区别和联系了?1. strcpystrcpy和strncpy是早期C库函数,头⽂件string.h。
现在已经发布对应safe版本,也就是strcpy_s, strncpy_s。
strcpy 函数将 strSource(包括终⽌ null 字符)复制到 strDestination 指定的位置。
如果源和⽬标字符串重叠,则 strcpy 的⾏为是不确定的。
注意:strcpy不安全的原因由于 strcpy 在复制 strSource 之前不检查 strDestination 中是否有⾜够的空间,因此它可能会导致缓冲区溢出。
因此,我们建议使⽤ strcpy_s。
参考微软官⽅⽂档下⾯的程序,编译器将产⽣C4996警告/错误提⽰char p1[] = "hello";char* ps = new char[100];// 如果想忽略C4996,VS2019下⾯,需要⽤编译器指令// #pragma warning(suppress : 4996)strcpy(ps, p1); // C49962. strncpystrncpy 函数将 strSource 的初始计数字符复制到 strDest 并返回 strDest。
如果 count ⼩于或等于 strSource 的长度,则不会⾃动向复制的字符串追加 null 字符。
如果 count ⼤于 strSource 的长度,则⽬标字符串将⽤空字符填充,最⼤长度为 count。
如果源和⽬标字符串重叠,则 strncpy 的⾏为是不确定的。
同strcpy⼀样,strncpy也是不安全的strncpy 不检查 strDest 中是否有⾜够的空间;这会导致缓冲区溢出的潜在原因。
strcpy字符数组strcpy字符数组是C语言中的一个常用函数,用于将一个字符串复制到另一个字符串中。
在本文中,我们将详细介绍strcpy函数的用法、参数和注意事项,以及一些实际应用中的案例。
让我们来了解一下strcpy函数的基本用法。
strcpy函数的原型如下:```cchar* strcpy(char* dest, const char* src);```其中,dest是目标字符串,用于存储复制后的结果;src是源字符串,需要被复制的字符串。
函数的返回值是指向目标字符串的指针。
在使用strcpy函数时,需要注意以下几点:1. 目标字符串(dest)必须具有足够的空间来存储源字符串(src)的内容,否则可能会导致内存溢出的问题。
2. 目标字符串和源字符串不应该重叠,否则会导致未定义的行为。
3. 源字符串必须以空字符('\0')结尾,否则可能会复制到无效的内存区域。
下面我们通过一些例子来进一步说明strcpy函数的使用。
例子1:将一个字符串复制到另一个字符串中```c#include <stdio.h>#include <string.h>int main() {char source[] = "Hello, world!";char destination[20];strcpy(destination, source);printf("Copied string: %s\n", destination);return 0;}```在这个例子中,我们将源字符串"Hello, world!"复制到目标字符串destination中,并通过printf函数输出复制后的结果。
运行程序,输出结果为:```Copied string: Hello, world!```例子2:复制字符串时要注意目标字符串的长度限制```c#include <stdio.h>#include <string.h>int main() {char source[] = "This is a very long string!";char destination[10];strcpy(destination, source);printf("Copied string: %s\n", destination);return 0;}```在这个例子中,源字符串"This is a very long string!"的长度超过了目标字符串destination的长度,导致目标字符串无法完整存储源字符串的内容。
strcpy_s函数strcpy_s函数是基于C及C++的一种函数,它的主要作用是将字符串从一个源地址复制到另一个目标地址。
它是C和C++语言系统库中安全版本的strcpy函数,与其原来版本相比,strcpy_s函数更加安全,有更高的异常处理能力,能够有效预防缓冲区溢出的发生。
strcpy_s函数的原型为:errno_t strcpy_s(char* dest, size_t num, const char* src);其中,dest目标地址,numdest的长度,src源地址,errno_t 是一种返回值,用于表示调用的函数的执行状态,其中,当函数执行成功返回值为 0,其它值表示调用失败。
strcpy_s数的使用步骤主要分为三步:1、确定目标及其大小:首先确定好目标字符串的地址以及其大小,并将其封装到结构体中;2、使用 strcpy_s数:将源字符串复制到目标字符串中;3、处理返回值:检查调用函数的返回值,并根据其返回值作出对应的处理。
strcpy_s函数主要用于处理字符串,提供更完善的安全性能。
有了它,就不需要在程序中单独编写内存拷贝代码,从而提高了程序的可读性以及可维护性,使程序更加简洁、可读、易维护。
同时,strcpy_s函数还可以有效预防缓冲区溢出的发生,在程序中传输量大的字符串时,有效减少字符串越限的可能性,提高了程序的安全性。
strcpy_s函数的安全性相对原来的strcpy函数有了很大的提升,可以有效避免暴力破解等安全漏洞,特别是其它代码中使用字符串时,使用 strcpy_s数可以在一定程度上防止越界访问或缓冲区溢出导致的安全问题,对保护系统安全性有着相当重要的作用。
因此,使用strcpy_s函数可以有效提升程序的安全性和可读性,使其具有更高的异常处理能力,为更多的应用场景提供保护。
二级C语言-5-1(总分:79.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:35,分数:45.00)1.有下列程序:main(){ int x=5;do{printf("%d",x-=4);}while(!(--x));}程序的输出结果是( )。
∙ A. 1∙ B. 20∙ C. 1 4∙ D. 死循环(分数:1.00)A.B.C. √D.解析:[解析] 本题考查do…while循环。
①执行printf语句,x=x-4 1,输出1,判断while循环的控制条件,--x=0,则(!(--x))非零,循环条件成立,执行下一次循环;②执行printf语句,x=x-4=-4,输出-4,判断while循环的控制条件,--x=-5,则(!(--x))为零,循环条件不成立,结束循环。
2.设有如下关系表:则下列操作中正确的是∙ A. T=R∩S∙ B. T=R∪S∙ C. T=R×S∙ D.T=R/S(分数:1.00)A.B. √C.D.解析:[解析] 选项A、B、C分别进行交运算、并运算,笛卡尔积运算,选项D不是关系运算。
T由属于关系R以及关系S的元组组成,简单来说,就是s和R的元组之和,是并运算,选项B正确。
3.有以下程序:#include <stdio.h>main(){ char a='a', b;printf("%c,", ++a);printf(1%c/n", b=a++);}程序运行后的输出结果是( )。
∙ A. b,b∙ B. b,c∙ C. a,b∙ D. a,c(分数:1.00)A. √B.C.D.解析:[解析] 本题考核的知识点是运算符++的用法。
程序中的第一个输出语句输出表达式++a的值,该++a 是在使用a之前,先使a的值加1,即a加1为字符b,此时a的值为b,所以第一个输出语句输出的值为b,第二个输出语句中输出的b的值,这时b的值为表达式a++的值,a++是在使用a之后(此时a的值为b,所以赋给b的值为b),使a的值加一,因此第二个输出的值也为b。
strcpy(s1,s2)的用法
char *strcpy(char* a, char *src);
把从b地址字符串复制到以a开始的地址空间
strcpy(s1,s2);
把s2中的内容复制到s1中,连字符串结束标志也一起
指针改变实参
首先在fun函数里输出的依次是b B,
一般形参不能改变实参,但在用指针传递数值的时候可以改变
因为:在用指针做参数的时候,传递的不是值本身,而是它所对应的地址,我们改变值的时候是改变那个地址里的值所以传递指针的话就能改变值了
在printf中,参数b的值被fun修改了,b=b,
参数a不受fun的影响,仍然是A
占位符
这里的2,表示占位符,意思是输出的变量a的值占两个字节,
如果a=56898,只能把前两位当成a输出,只能输出56
这里的空格,表示输入结束,(回车或空格表示输入一个数字结束)那么b就等于6,剩下的543.0就没用了
可是b是个浮点型,于是得給加上小数点。