1、 s= ;D.char *s; scanf(%s,s) ;设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下能正确执行并得到有意义的结果的赋值语句是( )。A.p2=c;B.c=*p1+*p2;C.p1=p2;D.c=*p1*(*p2);已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是( )。A.*p=max(a,b);B.*p=max;C.p=max;D.p=max(a,b);以下正确的叙述是( )。A.C语言允许main函数带形参,且形参个数和形参名均可由用户指定B.当main函数带有形参时,传给形参的值只能从命令行中得到C.若有说明: int m
2、ain(int argc,char *argv),则argc的值必须大于1D.C语言允许main函数带形参,形参名只能是argc和argv若有定义:int (*p)4;则标识符p( )。A.是一个指针数组名B.定义不合法C.是一个指向整型变量的指针D.是一个指针,它指向一个含有四个整型元素的一维数组设有程序段:char s =china; char *p ; p=s ;则下面叙述正确的是()。A.*p与s0相等B.数组s中的内容和指针变量p中的内容相等C.s数组长度和p所指向的字符串长度相等D.s和p完全相同char *s=”abcde” ;s+=2 ; printf(“%s”,s);A.字符
3、c的地址B.不确定C.cdeD.字符下面判断正确的是()。A.char str10= 等价于 char str10; str =B.char c4=abc,d4= 等价于 char c4=d4=C.char *a= 等价于 char *a; *a=D.char *s= 等价于 char *s;char s =”china”;则下面叙述正确的是( )A.数组s中的内容和指针变量p中的内容相等B.*p与s0相等已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是( )void print_value(int *x) printf(“%dn”,+*x);
4、A.24B.23C.25D.26若有说明:int *p,m=5,n;以下程序段正确的是( )A.p = &n ; *p = m ;B.p=&scanf(%d,&p);C.p = &,*p);D.scanf(n); *p=n ;变量的指针,其含义是指该变量的( )A.值B.地址C.一个标志D.名已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )A.ptr2=k;B.k=*ptr1+*ptr2;C.k=*ptr1*(*ptr2);D.ptr1=ptr2程序设计/*请编写函数fun,该函数的功能是:判断字符串是否为回文,若是
5、则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include #define N 80int fun(char str) /*Begin*/ /* End */void main() char sN; FILE *out; char test80=1234321,123421123321abcdCBA int i; printf(Enter a str
6、ing : ); gets(s);nn puts(s); if(fun(s) printf(YESn elseNOn /*/ out=fopen(debugout12.datw for(i=0;i4;i+) if(fun(testi) fprintf(out, else fclose(out);【参考代码】int fun(char str) int i,n=0,fg=1,j=0; while (strj) n+; j+; n/2;i+) /*循环比较字符*/ if(stri=strn-1-i); /*相同,什么都不作*/ else /*不同,直接跳出循环*/ fg=0; break; retu
7、rn fg; 统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。#includeint fun(char *s) /*Begin*/*End*/ FILE *wf; char lineN; int num=0;Enter a string:n gets(line); num=fun(line);The number of word is:%dnn ,num);/*/ wf=fopen(d:out19.dat fprintf(wf,fun(This is a big car); fclose(wf);/
8、*/ int i,j=0;for(i=0;si!0 if(si! &(si+1=|si+1= )/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/ return j;/*返回单词个数*/ /*假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是*ABCDEFG。 */void fun (char *a)/*Begin*/*End*/ char s81; FILE *in,*out;n f
9、un(s);The string after deleted: /*/ in=fopen(in21.datrdebugout21.dat8; fscanf(in,s); fprintf(out,%sn fclose(in); int i=0; char *p=a; while(*p&*p=*) ai=*p;i+;p+; while(*p) if(*p! p+; ai=将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是A*BC*DEF*G*。/*Begin*/*End*/ FILE *wf,*in; char s
10、81,t81=*A*BC*DEF*G*puts(s);in18.datdebugout18.dat,t); fun(t); while(*p=/*指针p指向字符串第一个字母*/ for(;*p!p+,a+) *a=*p; *a=/*请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。#define N 81void fun(char*s) char aN; gets(a);The original string is: puts(a); fun(a);The string after
11、modified: strcpy(a,Hello World! This is a first C program!out17.dat,a); char ch; int i,m,n; i=0; m=n=strlen(s)-1; while(ivoid fun(int a ,int b,long *c) /*Begin*/ /*End*/ int a,b; long c;Input a ,b:%d%da,&b); fun(a,b,&c);The result is :%ldn,c);debugout20.dat for(a=10;a20;a+) fun(a,109-a,&%dnfclose(out);*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1