当前位置:文档之家› C语言上机题库百科园第6章!南信大!

C语言上机题库百科园第6章!南信大!

第六章单选若已定义char s[10];则在下面表达式中不表示s[1]的地址是()。

A.&s[1]B.&s[0]+1+1++下面程序段的运行结果是()。

char a[ ]=”language” , *p ;p=a ;while (*p!='u') { printf(“%c”,*p-32); p++ ; }下面能正确进行字符串赋值操作的是( )s[5]={'A','B','C','D','E'};s[5]={"ABCDE"};*s ; s="ABCDE" ;*s; scanf("%s",s) ;设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下能正确执行并得到有意义的结果的赋值语句是( )。

=c;=*p1+*p2;=p2;=*p1*(*p2);已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是( )。

A.*p=max(a,b);B.*p=max;=max;=max(a,b);以下正确的叙述是( )。

语言允许main函数带形参,且形参个数和形参名均可由用户指定B.当main函数带有形参时,传给形参的值只能从命令行中得到C.若有说明: int main(int argc,char **argv),则argc的值必须大于1语言允许main函数带形参,形参名只能是argc和argv若有定义:int (*p)[4];则标识符p( )。

A.是一个指针数组名B.定义不合法C.是一个指向整型变量的指针D.是一个指针,它指向一个含有四个整型元素的一维数组设有程序段:char s[ ]="china"; char *p ; p=s ;则下面叙述正确的是()。

A.*p与s[0]相等B.数组s中的内容和指针变量p中的内容相等数组长度和p所指向的字符串长度相等和p完全相同下面程序段的运行结果是( )。

char *s=”abcde” ;s+=2 ; printf(“%s”,s);A.字符'c'的地址B.不确定D.字符'c'下面判断正确的是()。

str[10]={"china"}; 等价于 char str[10]; str[ ]={"china";}c[4]="abc",d[4]="abc"; 等价于 char c[4]=d[4]="abc" ;*a="china"; 等价于 char *a; *a="china" ;*s="china"; 等价于 char *s; s="china" ;设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是()A.数组s中的内容和指针变量p中的内容相等B.*p与s[0]相等数组长度和p所指向的字符串长度相等和p完全相同已有变量定义和函数调用语句:int a=25;print_value(&a);下面函数的输出结果是( )void print_value(int *x){ printf(“%d\n”,++*x); }若有说明:int *p,m=5,n;以下程序段正确的是( )= &n ; *p = m ;=&n ;scanf("%d",&p);= &n ;scanf("%d",*p);("%d",&n); *p=n ;变量的指针,其含义是指该变量的( )A.值B.地址C.一个标志D.名已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )=k;=*ptr1+*ptr2;=*ptr1*(*ptr2);=ptr2程序设计/*请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出"YES",否则返回0,主函数中输出"NO"。

回文是指顺读和倒读都一样的字符串。

例如,字符串LEVEL是回文,而字符串123312就不是回文。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/#include <>#define N 80int fun(char str[]){/***************Begin************//*************** End ************/}void main(){char s[N];FILE *out;char test[][80]={"1234321","123421","123321","abcdCBA"};int i;printf("Enter a string : ");gets(s);printf("\n\n");puts(s);if(fun(s))printf("YES\n");elseprintf("NO\n");/************************************/out=fopen("debug\\","w");for(i=0;i<4;i++)if(fun(test[i]))fprintf(out,"YES\n");elsefprintf(out,"NO\n");fclose(out);/************************************/}【参考代码】int fun(char str[]){int i,n=0,fg=1,j=0;while (str[j]){n++;j++;}for(i=0;i<n/2;i++)/*循环比较字符*/if(str[i]==str[n-1-i]);/*相同,什么都不作*/else/*不同,直接跳出循环*/{fg=0;break;}return fg;}/*请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。

一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/#include<>#include<>#define N 80int fun(char *s){/************Begin*************//*************End*************/}void main(){FILE *wf;char line[N];int num=0;printf("Enter a string:\n ");gets(line);num=fun(line);printf("The number of word is:%d\n\n ",num);/******************************/wf=fopen("d:\\","w");fprintf(wf,"%d",fun("This is a big car"));fclose(wf);/*****************************/}【参考代码】int i,j=0;for(i=0;s[i]!='\0';i++)if(s[i]!=' '&&(s[i+1]==' '||s[i+1]== '\0'))/*如果一个字母的下一个字符为空格或者结束标记,则表示一个单词结束*/j++;return j;/*返回单词个数*//*假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****ABCDEFG。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */#include <>#include <>void fun (char *a){/************Begin*************//************End**************/}void main(){char s[81];FILE *in,*out;int i;printf("Enter a string :\n");gets(s);fun(s);printf("The string after deleted:\n");puts(s);/******************************/in=fopen("","r");out=fopen("debug\\","w");for(i=0;i<8;i++){fscanf(in,"%s",s);fun(s);fprintf(out,"%s\n",s);}fclose(in);fclose(out);/******************************/}【参考代码】int i=0;char *p=a;while(*p&&*p=='*'){a[i]=*p;i++;p++;}while(*p){if(*p!='*'){a[i]=*p;i++;}p++;}a[i]='\0';/*假定输入的字符串中只包含字母和*号。

相关主题