c语言中strlen的用法一道题:printf("%d",strlen("123\'4"));

发表时间:日
文章说明:
电子科技大学网络教育考卷(A卷)(20&&&&年至20&&&&学年度第&&&&学期)考试时间&&&&&&&&年&&&&月&&&&日(120分钟)&&课程&&&&&&&&&&&&C语言&&&&&&&&&&&&教师签名_____&&大题号 一 二 三 四 五 六 七 八 九 十 合&&计得&&&&分
一、单项选择题(每题2分,共30分)1.以下描述正确的是(&&&&&&&&C&&&&&&&&&&)A.goto语句只能用于退缩出多层循环。B.switch语句中不能出现continue语句。C.只能用continue语句中来终止本次循环。D.在循环语句中break语句不独立出现。2.一个C程序的执行是从(&&&&A&&&&&&)A.C程序的main函数开始,到main函数结束。B.本程序的第一个函数开始,到本程序最后一个函数结束。C.本程序的main函数开始,到本程序文件的最后一个函数结束。`D.本程序的第一个函数开始,到本程序main函数结束。3.C语言中,要求运算数必须都是整数的运算符是(&&C&&&&)。A.*&&
D.+4.假定&&int&&i=3,j=4;&&执行语句:&&printf(&%d,%d,%d\n&,i+++j,i,j);&&之后,其输出结果为:(&&C&&)&&&&&&&&A.7,4,4 &&&&&&B.&&8,4,4 &&&&C.&&7,3,4 &&&&D.7,3,55.对break语句的正确描述。( &&&&A&&&&&&&&&&)&&&&&&&&A.break语句在while语句中,立即终止执行while语句。&&&&&&&&B.break语句不能用于循环语句之外的语句。C.break语句与continue语句功能相同。D.break语句可以带参数,也可以不带。6.在C语言中,下面那一个不是正确的概念(&&&&A&&&&&&&&)A.&&所有循环语句都要求至少要执行一次循环体。B.&&goto和if语句能构成循环语句。C.循环过程只能包含,不能交叉。D.循环体可以是一条语句。7.以下对二维数组a的正确说明是(&&&&&&C&&&&&&)A.&&int&&a[&&3&&]&&[&&&&];&&&&&&&&&&&&&&&&&&&&&&B.&&float&&a(&&3,&&4);&&&&&&&&C.&&int&&a[&&3&&]&&[&&4&&]&&&&&&&&&&&&&&&&&&&&&&&&D.float&&a(&&3,&&)(&&4&&);8.对函数的正确描述( C )&&&&&&&&A.在C语言中可以嵌套定义函数。&&&&&&&&B.自定义函数和调用函数可以不在一个源文件中。&&&&&&&&C.&&函数定义都是平行的,独立的。&&&&&&&&D.&&不能嵌套调用函数。9.若用数组名作为函数调用的实参,传给形参的是(&&&&&&&&&&A&&&&&&&&)A.数组的首地址&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&B.数组的第一个元素值C.数组的全部元素值&&&&&&&&&&&&&&&&&&&&&&&&&&D.数组中元素的个数10.对于&&int&&*p;&&int&&a[];&&p=a;&&的合法运算(&&&&&&&&C&&&&&&&&&&&&&&)&&&&&&&&A.&&a++;&&&&&&&&B.&&p=a;&&p++;&&相当于&&a++;&&&&&&&&C.&&++p;&&相当于&&a[1];&&&&&&&&D.&&若p中的地址为100则p++;&&运算后,则其值为10011.假设 int&&x[]&&=&&{1,3,5,7,9,11},&&*&&ptr&&=&&x;&&以下那些是对数组元素的正确引用&&( D )A.&&*(ptr) &&&&&&&&B.&&x[6] &&&&&&&&C.&&*(ptr) &&&&&&&&&&D.&&*(ptr++)12.执行以下语句后的结果为(  A  )&&&&&&&&&&enum&&weekday&&{sun,mon=3,tue,wed,thu};&&&&&&&&&&enum&&weekday&&&&&&&&&&&&wkday&&=&&&&&&&&&&&&printf(&%d\n&,wkday);A.5 &&&&&&&& B.&&3
&&&&&&D.编译出错13.要定义一个结构体类型拟包含两个成员,其中成员变量info用来存放整型数据,成员变量link是指向自身结构体的指针。则下面的定义正确的是(&&&&&&D&&&&&&)。A.struct&&node{int&&struct&&node&&};&&B.struct&&node{int&&node&&*};C.struct&&node{int&&struct&&*};&&&&D.struct&&node{int&&struct&&node&&*};14.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是(&&&&D&&&&&&&&)。A.feof(fp)&&&&
B.ftell(fp)&&&&
C.fgetc(fp)&&&&
D.rewind(fp)15.局部变量的作用域( &&&&&&&&A&&&&&&&& )&&&&&&&&&&A.在定义的块内有效。&&&&&&&&&&&&&&&&&&B.在函数外也有效。&&&&&&&&&&C.在本文件内有效。&&&&&&&&&&&&&&&&&&&&&&D.在所有文件内有效。二、判断题(每题1分,共10分)(&&×&&)1.break和continue&&都可以用于switch语句中。(√&&&&)2.C语言不能嵌套定义函数,但可以嵌套调用。(×&&&&)3.C语言函数的缺省类型是void型(空类型)。(×&&&&)4.如果a&b或c&d为真,那么表达式(a&b&&c&d)为真。(√&&&&)5.如果有:int&&data[10];int&&*p;&&则语句p=data 和&&语句&&p=&data[0]等价。(√&&&&)6.联合类型是在同一个存储空间,可以为几个不同数据类型的成员所使用。(&&×&&&&)&&7.一个数组能够存储许多不同类型的值。(√&&&&)8.在运算时,不同类型的数据要先转换成精度高的类型之后,然后才能进行运算。(×&&&&)9.C语言允许对数组的大小作动态定义。(×&&&&)10.条件运算符的结合方向是从左到右。三、分析程序给出运行结果(每题5分,共25分)1.&&#include&&&stdio.h&#include&&&string.h&void&&main(){ &&s[20]=&abcd&;printf(&%d,%d\n&,sizeof(s),strlen(s));}答案:20,4&&2.&&#include&&&stdio.h&void&&main(){&&&&&&int&&a[][3]={{1,2,3},{4,5,6},{7,8,9}},*p;p=&a[0][0];printf(&%d\n&,p[5])&&;}答案:&&6&&&&3.&&#&&include&&&stdio.h&main(&&&&){&&&&&&&&s[10]={“abc”};printf(“c1=%c,c2=%s\n”,s[2],s);}答案:&&&&c1=c,c2=abc&&&&&&4.&&&&main(&&)
&&&&&&{&&&&&&&&&&&&&&printf(&%d&&%x&&%o\n&,125,125,125);&&&&&&&&&&&&&&printf(&%d&&%x&&%o\n&,045,045,045);&&&&&&&&&&&&&&printf(&%d&&%x&&%o\n&,0x32,0x32,0x32);}答:&&125&&&&7d&&&&175 37&&&&25&&&&&&45&&&&&&&&50&&&&32&&&&625.&&#include&&&stdio.h&int&&f(int&&a);int&&main(){ &&int&&f(int); &&&&&&&&&&int&&a=2,i; &&&&&&&&&&f(i=0;i&3;i++) &&&&&&&&&&{
&&&&&&&&&&&&printf(&%d&&&,&&f(a)); &&&&&&&&&&} &&&&&&&&&&return&&0;}int&&f(int&&a){ auto&&&&int&&b=0; &&&&&&&&static&&int&&c=3; &&&&&&&&b&&=&&b+1; &&&&&&&&c&&=&&c+1; &&&&&&&&return&&(a+b+c);}答案:7&&8&&9四、完善程序填空题(每题5分,共15分)1.程序实现:将100~200之间的素数输出。#include&&&stdio.h&int&&main(){ &&&&&&&&&&&&int&&x=100;&&&&&&&&&&&&&&int&&a=2;&&mmm:&&&&x++;&&&&&&&&&&&&&&while(&&&&&&&&&&&&&&&&x&=200&&&&&&&&&&&&&&&&&&&&)&&&&&&&&&&&&&&{ &&&&&&if&&(x%a&&==&&0)
&&&&&&goto&&
&&&&&&if(&&a&&&=&&x/2)&&
&&&&&&{&&&&&&printf(&%d&&&&&,x);
&&&&&&a=2;
&&&&&&goto&&
&&&&&&else&&++a;&&&&&&&&&&&&&&} &&&&&&&&&&&&return&&0;}2.以下程序的功能是统计一行字符中的单词个数(单词之间用空格分隔)请完善该程序功能。 main(&&) { &&str[256];
int&&i,num=0,wd=0;
scanf(“%s”,str);
f(i=0;str[i]!=&&\0;i++)
&&&&&&&&&&if(str[i]&&==&&&&&&)&&
&&&&&&&&&&else&&if&&(&&&&&&&&&&&&&&&&wd&&==&&0&&&&&&&&&&&&&&)
{ wd&&=&&1;
&&printf(“%d”,num); }3.&&输出3到100之间的所有素数。 main() { int&&i,j;
f(i=3;&&&&&&&&&&&&&&&&i&=100&&&&&&&&&&&&&&&&;i++)
{ f(j=2;j&=i-1;j++)
if(i%j==0)
&&&&&&&&&&
if(&&i==j&&)
&&&&&&&&&&&&&&printf(&%4d&,i);
} }五、编程题&&(每题10分,共20分)1.&&请编制程序实现:判断一个数能否同时被3和5整除。答:算法如下:#include&&&stdio.h&&&&&&&&&&&int&&main(){ int&&x; &&&&&&&&printf(&\n为X输入值&);&&&&&&&&scanf(&%d&,&&&x);if&&(x%3==0) &&&&&&{ if(x%5==0)
&&&&&&&&{ &&printf(&\nX能被3和5整除:X=&);&&&&&&&&&&&&&&&&&&&&&&&&&&printf(&%-5d\n&,x);
&&&&&&&&}&&&&&&&&&&&&&&&&else&&printf(&\nX不能被5整除&);}&&&&&&&&else&&printf(&\nX不能被3整除&);&&&&&&&&return&&0; }2.请编制程序实现:用递归方式计算a!+b!+c!,并要求有输出结果。答:算法如下:#include&stdio.h&&&int&&fact(int);int&&main(){ int&&a,b,c; printf(&Enter&&three&&numbers:&); scanf(&%d%d%d&,&a,&b,&c); printf(&%d!+&&%d!+&&%d!=&&%d&&\n&,a,b,c,fact(a)+fact(b)+fact(c)); return&&0;}fact(int&&n){ int&& if(n==1)&&
return(1); result=fact(n-1)*n;&&&&/*递归调用 return(result);}电子科技大学网络教育考卷(A卷)(20&&&&年至20&&&&学年度第&&&&学期)考试时间&&&&&&&&年&&&&月&&&&日(120分钟)&&课程&&&&&&&&&&&&C语言&&&&&&&&&&&&教师签名_____&&大题号 一 二 三 四 五 六 七 八 九 十 合&&计得&&&&分
一、单项选择题(每题2分,共30分)&&1.下面的四个选项中,均不是合法的用户标识符的选项是(&&B&&&&&&&&)A.&&&&B&&&&&&&&&&&&&&&&&&&&&&&&&&B.&&b-a&&&&&&&&&&&&&&C.&&&&float&&&&&&&&&&&&&&&&&&D.&&&&_123 &&&&&&&&&&M_0&&&&&&&&&&&&&&&&&&&&&&&&goto&&&&&&&&&&&&&&&&&&&&&&2ab&&&&&&&&&&&&&&&&&&&&&&&&tempwhile&&&&&&&&&&&&&&&&&&&&&&&&int&&&&&&&&&&&&&&&&&&&&&&&&_A&&&&&&&&&&&&&&&&&&&&&&&&&&INT2.有输入语句:scanf(“a=%d,&&b=%d,&&c=%d”,&&&a,&&&b,&&&c);为使变量a,b,c的值分别为1,3,2,从键盘上输入数据的正确形式应当是(&&&&B&&&&&&&&&&&&)A.132&&〈回车〉&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&B.a=1,b=3,c=2〈回车〉&&C.a=1&&b=3&&c=a&&&&&回车&&&&&&&&&&&&&&&&&&&&&&&&&D.1,3,2&&〈回车〉3.如果输入信息为:1234567&&&&&&则执行语句:scanf(&%2d%2d&,&x,&y); 之后,x,y的值为(&&&&A&&&& )&&&&&&&&A.&&x为12,y为34&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&B.&&x为2,y为3&&&&&&&&C.&&x为12,y为67&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&D.x为1234567,y为04.对于&&f(表达式1;表达式2&&;表达式3)&&语句的正确描述( B&&&&)&&&&&&&&A.表达式2省略,循环不执行。&&&&&&&&B.表达式3省略,可在循环体中修改循环控制变量,以保证正常退出。C.三个表达式均不能省略。D.三个表达式均不能省略。但分号可以省略。5.以下叙述中正确的是(&&B&&&&&&)。A.循环语句嵌套必须是同类型的语句B.循环语句嵌套可以是同类型的语句,也可以不同类型C.do_while循环语句和&&while循环语句的程序执行方式都是相同的。D.循环体中不能再有循环语句6.有下面的程序段:&&&&a[&&3&&],&&b[&&&&]&&=”student”;a=b;printf&&(“&&%s”,a);则(&&&&&&&&D&&&&&&)A.运行后将输出student&&;&&&&&&&&&&&&&&&&&&&&&&C.运行后将输出b;&&B.运行后将输出a&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&D.编译出错&&&&7.当数组作函数参数时,选出不正确的描述。( D )&&&&&&A.实参数组与形参数组类型应一致。&&&&&&B.数组元素做函数实参时,同变量做实参一样是参数传值。&&&&&&C.形参数组可以不定义数组大小。&&&&&&D.实参数组与形参数组大小必须一致,否则C编译会检查出错。8.在C语言中,函数返回值的类型最终取决于(&&&&&&&&&&A&&&&&&&&&&&&)。A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型9.若有说明 int&&(*p)[3]; 则以下正确的描述( B )&&&&&&&&A.&&p是一个指针数组。&&&&&&&&B.&&p&&是一个指针,它只能指向一个包含3个int类型元素的数组。&&&&&&&&&&C.&&p是一个指针,它可以指向一个一维数组中的任意元素。D.&&(*p)[3]与*p[3]等价。10.&&已知int&&b;&&则对指针变量p正确的说明和初始化是:(&&&&&&4&&&&&&&&)A.&&int&&*p=b;&&&&&&&&B.&&int&&p=b;&&&&&&&&C.&&int&&p=&b;&&&&&&&&&&D.&&int&&*p=&b;11.若已定义了如下的共用体类型变量x,则x所占用的内存字节数为( C&&&&)(设在16位pc机的环境下)&&&&&&&&union&&data&&&&&&&&&&{ int&&i; &&&&&&&&&& &&&&&&&&double&&f; }x;&&&&&&&&&&A.&&7 &&&&&&&&&&&&&&&&B.&&11 &&&&&&C.&&8 &&&&&&&&&&&&&&&&&&D.&&1012.设fp为指向某二进制文件的指针,且已经读到此文件末尾,则函数feof(fp)的返回值为(&&&&&&B&&&&&&&&&&)。A.EOF&&&&&&&&&&&&B.非0值&&&&&&&&&&&&&&&&&&C.0&&&&&&&&&&&&&&&&&&D.NULL13.&&C语言程序中,main函数的位置(&&&&&&D&&&&&&&&&&)。A.在开头&&
B.在结尾&&
C.在中间&&
D.可以任意14.&&int&&x=3;&&if(1&=2)if(0)x=4;else&&x=5;else&&x=6;&&执行上述语句后x的值是(&&&&&&C&&&&&&&&).A.3&&&&&&&&&&&&&&&&&&B.4&&&&&&&&&&&&&&&&C.&&&&&&&&&&&&&&&&&&&&&&D.615.&&以下叙述正确的是(&&&&&&C&&&&)A.goto语句只能用于退出多层循环。B.可以用continue语句来终止switch语句的执行。C.break语句只能用在循环体内和switch语句体中。D.在循环内使用break语句和continue语句的作用相同。二、判断题(每题10分,共10分)(&&&&&&×&&)1.若有代数式x2÷(3x+5),&&则正确的C语言表达式为:x*x/3*x+5。(&&&&√&&&&)2.开发一个c语言的源程序要经过的四个阶段编辑、编译、连接,程序运行。(&&&&&&×&&&&)3.int&&i=5,&&j,&&k;&&j=i++;&&k=i;&&则&&k的值为5。(&&&&&&×)4.已知:int&&s[][3]={1,2,3,4,5,6};&&此时数组元素s[1][1]的值为1。(&&&&√&&)5.字符串“hello”占用内存6字节。&&(&&&&√&&)6.&&C语言中,注释可以出现在源程序中空格可以出现的任何位置。(&&&&&&×)7.&&强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。&&(×&&&&)8.&&在C语言程序中,每个函数必须要有且只能有一个return语句。&&(√&&&&)9.&&枚举类型变量只能取枚举定义中的枚举常量。(√&&&&)10.&&联合类型是同一个存储空间,可以被几个不同数据类型的分量成员共享使用。三、分析程序给出运行结果(每题5分,共25分)1.执行下面程序之后,m的值为多少。#include&stdio.h&main(){&&&&static&&int&&a[2][3]={{1,2,3},{4,5,6}};&&&&&&&&&&&&&&int&&m;&&&&&&&&&&&&&&m=*(*(a+1)+1);&&&&&&&&&&&&&&m=m*a[1][1];&&&&&&&&&&&&&&printf(&%d&,m);&&&&&&&&&&&&&&return&&0;}答案:252.分析下面程序的运行结果。#include&stdio.h&main(){&&&&&&int&&i=1;while(i&=10){&&&&if&&(!(i%2))&&printf(&%d,&,i);i++;}}答案:2,4,6,8,103.分析下面程序的运行结果。#include&stdio.h&&&main(){&&s[]=&456789&;s[4]=\0;printf(&%s\n&,s);}答案:4567}4.&&#include&&&stdio.h&void&&main(){&&&&&&int&&a=2;switch(a)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&case&&2:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&&3:a++;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&case&&4:a++;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&default:a+=10;&&&&&&&&&&&&&&&&}printf(&a=%d\n&,a);}答案:a=145.分析下面程序的运行结果。#include&&&stdio.h&int&&f(int&&a);int&&main(){ &&int&&f(int); &&int&&a=5,i; &&f(i=0;i&3;i++) &&{
printf(&%d&&&,&&f(a)); &&} return&&0;}int&&f(int&&a){ auto&&&&int&&b=0; static&&int&&c=3; b&&=&&b+1; c&&=&&c+1; return&&(a+b+c);}答案:10&&11&&12四、完善程序填空题(每题5分,共15分)1.&&输出所有的“水仙花数”,所谓“水仙花数”是指一个3位整数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。答:#include&&&stdio.h&void&&main(){&&&&int&&i,j,k,n;&&&&&&printf(&Narcissus&&number&&are:&&&);f(n=100;n&1000;n++)&&&&&&{&&&&&&&&i=n/100;&&&&&&&&&&&&&&&&&&j=n/10-i*10;&&&&&&&&&&&&&&&&&&k=n%10;&&&&&&&&&&&&&&&&&&if(n==&&&&&&&&&&&&i*i*i+j*j*j+k*k*k&&&&&&&&&&&&)&&&&&&&&&&&&&&&&printf(&%5d&,n);&&&&&&}&&printf(&\n&);}2.&&将原文件file1.c的内容读出并显示,&&同时将其内容写入file2.c文件中。#include&stdio.h&&&&&&&&&main()&&&&&&&&{&&&&&&FILE&&*fp1,*fp2;&&&&&&&&&&&&&&&&fp1=fopen(&file1.c&,&&&&&&&&&r&&&&&&&); &&&&&&&&fp2=fopen(&file2.c&,&w&);&&&&&&&&&&&&&&&&while(!feof(fp1))&&put(getc(fp1));&&&&&&&&&&&&&&&&rewind(fp1); &&&&&&&&while(!feof(fp1))&&putc(&&&&&&&&&&getc(fp1)&&&&&&&&&&,fp2);&&&&&&&&&&&&&&&&fclose(fp1);fclose(fp2);&&&&&&&&}3.用冒泡法对10个整数排序。#include&&&stdio.h&&&&&int&&main(){ int&&a[10]; int&&i,j,t; f&&(i=0;&&i&10;&&i++) {
scanf(&%d&,&&&a[i]); } f(j=0;j&9;j++) { f(i=0;i&9-j;i++)
if&&(a[i]&&&&&a[i+1])
t&&=&&a[i];
a[i] =&&a[i+1];
a[i+1]&&=&&t;
} }五、编程题&&(每题10分,共20分)1.&&请编制程序实现:判断一个数能否同时被4和7整除。答:算法如下:#include&&&stdio.h&&&&&&&&&&&int&&main(){ int&&x; &&&&&&&&printf(&\n为X输入值&);&&&&&&&&scanf(&%d&,&&&x);if&&(x%4==0) &&&&&&{ if(x%7==0)
&&&&&&&&{ &&printf(&\nX能被4和7整除:X=&);&&&&&&&&&&&&&&&&&&&&&&&&&&printf(&%-5d\n&,x);
&&&&&&&&}&&&&&&&&&&&&&&&&else&&printf(&\nX不能被7整除&);}&&&&&&&&else&&printf(&\nX不能被4整除&);&&&&&&&&return&&0; }2.&&编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他符的个数,在主函数中输入字符串以及输出上述的结果。#include&&&stdio.h&&&&&&&int&&n=0,m=0,k=0,o=0;&&&&//外部变量void&&test(&&str[]);main(){&&&&&&a[80];&&&&printf(&input&&string:&);&&&&gets(&&a);&&&&test(a);&&&&&&printf(&\n字母数=%d&&数字数=%d&&空格数=%d&&&&其他字符数%d\n&,n,m,k,o);&&&&return&&0;}void&&test(str)&&str[];{ int&&i; f(i=0;str[i]!=&&\0;i++)&& { if(str[i]&=a&&str[i]&=z||&&str[i]&=A&&str[i]&=Z)&&
n++;&&&&//n为字母数
else&&if( str[i]&=0&&str[i]&=9)
m++;&&&&//m为数字
else&&if(str[i]==&&)
k++;&&&&&&&&//k为空格&&&&&&&&&&&&&&&&else&&o++;&&&&&&//统计总字符数 }}&&&&电子科技大学网络教育考卷(A卷)(20&&&&年至20&&&&学年度第&&&&学期)考试时间&&&&&&&&年&&&&月&&&&日(120分钟)&&课程&&&&&&&&&&&&C语言&&&&&&&&&&&&教师签名_____&&大题号 一 二 三 四 五 六 七 八 九 十 合&&计得&&&&分
一、单项选择题(每题2分,共30分)&&1.请问:下面这个程序段的输出是什么?(&&&&&&&&D&&&&&&)&&&&&&&&int&&a=7,b=8,c=9;&&&&&&&&if(a&b)&&&&&&{&&&&&&a=b;&&&&&&&&b=c;&&&&&&&&&&c=a;&&&&&&&&&&}&&&&&&&&printf(&a=%d&&b=%d&&c=%d\n&,a,b,c); &&&&&&&&&&A&&.&&a=7&&b=8&&c=7&&&&&&&&&&&&&&&&&&B.&&a=7&&b=9&&c=7&&&&&&&&&&C.&&a=8&&b=9&&c=7&&&&&&&&&&&&&&&&&&D.&&a=8&&b=9&&c=8&&2.C语言对嵌套&&if&&语句的规定是:else总是与( D )配对。&&&& A.其之前最近的&&if&&&&&&&&&&&&&&&&&&&&&&&&&&B.第一个&&if&&&&&&&&C.缩进位置相同的&&if&&&&&&&&&&&&&&&&&&&&&&D.&&其之前最近且不带&&else&&的&&if3.有以下程序段:int&&k=0;while(k=1)&&&&&&&&k++;while循环执行的次数是(&&&&A&&&&&&&&&&&&)。A.无限次&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&B.有语法错,不能执行C.&&一次也不执行&&&&&&&&&&&&&&&&&&&&D.执行1次4.若有语句: &&&&tatic&&&&x[]=&12345&; &&&&static&&&&y[]&&=&&{1,2,3,4,5};&&&&&&&&&&&&则下面那一个是正确的描述。(&&&&&&&&&&&&2 )&&&&&&&&&&A.x数组和y数组的长度相同。&&&&&&&&&&B.x数组长度大于y数组长度。&&&&&&&&&&C.x数组长度小于y数组长度。&&&&&&&&&&D.x数组等价于y数组。5.若有定义:int&&a[5][6];&&则下面关于数组a的叙述中正确的是(&&&&C&&)。A.该数组共有20个元素&&&&&&&&&&&&&&&&&&&&B.a[0][6]是该数组的一个元素C.a[0][0]是该数组的一个元素&&&&&&&&D.a[5][6]是该数组的一个元素6.对局部变量不正确描述( B )&&&&&&A.在不同块内可以使用相同的变量名而不会混淆。&&&&&&B.局部变量在任何一个函数内有效。&&&&&&C.局部变量的初值每调用一次赋一次&&&&&&D.用auto说明的变量为局部变量。7.凡是函数中未指定存储类别的局部变量,隐含的存储类别为(&&&&&&&&A&&&&&&&&)。A.auto&&&& B.&&register&&
C.&&static&&&&
D.&&extern&&8.在说明语句:int&&*f(&&&&);中,标识符f代表的是(&&&&&&&&&&A&&&&&&&&)A.一个返回值为指针型的函数名B.&&一个用于指向整型数据的指针变量C.一个用于指向函数的指针变量D.一个用于指向一维数组的行指针9.typedef(&&&&&&D )&&A. 可以定义各种类型名和变量名。&&&&&&&&&&B. 可以创造新的数据类型。&&C. 和#define作用相同。&&D.&& 只是对已存在的类型增加一个类型名,不能创造新类型。10.若fp已正确定义为一个文件指针,d1.dat为二进制文件,为“读”而打开此文件的语句是(&&&&&&&&&&B&&&&&&&&)。A.fp=fopen(&d1.dat&,&r&);&&&&&&&&B.fp=fopen(&d1.dat&,&rb&);C.fp=fopen(&d1.dat&,&r+&);&&&&&&D.fp=fopen(&d1.dat&,&w&);11.以下选项中,当x为大于1的奇数时,值为0的表达式是(&&&&&&&&D&&&&&&)。A.x%2==1&&&&&&&&B.x/2&&&&&&&&&&&&C.x%2!=0&&&&&&&&&&D.x%2==012.若有定义:int&&w[3][5];&&,则以下不能正确表示该数组元素的表达式是(&&&&B&&&&&&&&)。A.*(*w+3)&&&&&&&&&&B.*(w+1)[4]&&&&&&&&C.*(*(w+1))&&&&&&&&D.*(&w[0][0]+1)13、有以下程序段typedef&&struct&&node&&{int&&struct&&node&&*}*&&NODE;&&NODE&&p;&&以下叙述中正确的是__________C________。A.p是指向struct&&node结构体变量的指针的指针B.NODE&&p;语句出错C.p是指向struct&&node结构变量的指针D.p是struct&&node结构变量14、若有程序段:double&&x=-5.9;int&&y;y=(int)x;&&执行该段程序后_____A_____。A.x=-5.9,y=-5&&&&&&&&&&&&&&&&&&&&&&&&&&B.x=-5.9,y=-6&&&&C.x=-5,y=-5&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&D.x=-6,y=-615.已知&&int&&b;&&则对指针变量正确的说明和初始化是:__&&&&&&D&&&&&&__A.int&&*p=b;&&&&&&B.int&&p=b;&&&&&&C.int&&p=&b;&&&&&&&&D.int&&*p=&b;二、判断题(每题1分,共10分)(&&√&&)1.执行&&c[3]=”ab”,&&*p;&&p=c;程序段后,*(p+1)的值是&&b&&,&&*(p+2)的值是&&\0&&。(&&×&&)2.C语言中,变量名用大小写是等价的。(&&√&&)3.强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。(&&×)4.存储字符串所需的内存空间等于字符串的长度。(&&√&&)5.C语言中,注释可以出现在源程序的任何位置。(&&×)6.整型、字符型、指针型是C语言中最简单的数据类型。(&&√&&)7.全局变量在整个源程序文件中都有效。(&&×&&)8.&&switch选择结构中必须有default子句。(&&√&&)9.如果x&y或者a&b为真,那么表达式(&&x&y||a&b)为真。(&&√&&)10.结构成员名可以与程序中的变量同名,也可以与结构类型名相同,而不会混淆。三、分析程序给出运行结果(每题5分,共25分)1.以下程序的运行结果是:#include&&&stdio.h&#include&&&stdlib.h&struct&&data{&&&&&&&&int&&x,y;&&&&&&&&&&};void&&main(){&&&&&&struct&&data&&*&&p;p=(struct&&data&&*)malloc(sizeof(struct&&data));(*p).x=3;(*p).y=4;printf(&%d&&&&%d\n&,p-&x,p-&y);free(p);}答案:3&&&&4&&&&2.分析下面程序的运行结果。#include&&&stdio.h&int&&main(){ int&&i,j,&&row=0,&&colum=0,&& int&&a[3][4]&&=&&{{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; f&&(i=0;i&=2;i++) { f&&(j=0;j&=3;j++)
{&& if&&(a[i][j]&max)
{ max =&&a[i][j];
&&&&&&&&row =&&i;
&&&&&&&&colum=j;
} } printf(&max=%d,row=%d,colum=%d\n&,&&max,&&row,&&colum); return&&0;}答案:max=10,row=2,colum=13.分析下面程序的运行结果。#include&stdio.h&&&main(){&&ss[]=&2345678&;ss[5]=\0;printf(&%s\n&,s);}答案:234564.给出以下程序的运行结果。#include&stdio.h&main(&&)
{&&&&&&&&&&&&&&printf(&%d&&%x&&%o\n&,88,88,88);&&&&&&&&&&&&&&printf(&%d&&%x&&%o\n&,025,025,025);&&&&&&&&&&&&&&printf(&%d&&%x&&%o\n&,0x31,0x31,0x31); &&&&&&&&&&return&&0;}答案:88&&58&&13021&&15&&2549&&31&&615.&&main()  { &&a[]=&This&&is&&a&&program.&,b[20]; int&&i=0; while(a[i]!=\0) { b[i]=a[i];
} b[i]=\0; printf(&string&&a&&is:&&%s\n&,a); printf(&string&&b&&is:&&&); f(i=0;*(b+i)!=\0;i++) &&&&&&&&printf(&%c&,*(b+i)); printf(&\n&);  }答案:string&&a&&is:&&This&&is&&a&&program.string&&b&&is:&&This&&is&&a&&program. 四、完善程序填空题(每题5分,共15分)1.将一个数组中的值按逆序重新存放,#include&&&stdio.h&&&&&void&&main(){&& int&&i,j,m,n=0, int&&x[20]; printf(&输入需排序的个数%d\n&,n); scanf(&%d&,&n); f(i=0;i&n;i++) {
scanf(&%d,&,&&&x[i]);&&&&&&&& } m&&=&&(n-1)/2; f(i=0;i&=m;i++) { j&&=&&n-1-i;
temp&&=&&x[i];
x[i]&&=&&x[j];
x[j]&&=&& }}2.将原文件file1.c的内容读出并显示,&&同时将其内容写入file2.c文件中。#include&stdio.h&&&&&&&&&main()&&&&&&&&{&&&&&&FILE&&*fp1,*fp2;&&&&&&&&&&&&&&&&fp1=fopen(&file1.c&,&r&); &&&&&&&&fp2=fopen(&file2.c&,&w&);&&&&&&&&&&&&&&&&while(!feof(fp1))&&put(getc(fp1));&&&&&&&&&&&&&&&&rewind(fp1); &&&&&&&&while(!feof(fp1))&&putc(getc(fp1),fp2);&&&&&&&&&&&&&&&&fclose(fp1);fclose(fp2);&&&&&&&&}3.&&统计字符串中小写字符的个数。#include&&&stdio.h&main(){&&&&&&str[20];&&&&int&&i,n=0;&&&&gets(&&);&&&&f(i=0;str[i]!=&&&/0&;i++)&&改为‘\0’if(str[i]&=a&&str[i]&=z)&&n++;printf(&%d\n&,n);}五、编程题&&(每题10分,共20分)1.&&请编制程序实现:判断一个数能否同时被5和8整除。答:算法如下:#include&&&stdio.h&&&&&&&&&&&int&&main(){ int&&x; &&&&&&&&printf(&\n为X输入值&);&&&&&&&&scanf(&%d&,&&&x);if&&(x%5==0) &&&&&&{ if(x%8==0)
&&&&&&&&{ &&printf(&\nX能被5和8整除:X=&);&&&&&&&&&&&&&&&&&&&&&&&&&&printf(&%-5d\n&,x);
&&&&&&&&}&&&&&&&&&&&&&&&&else&&printf(&\nX不能被8整除&);}&&&&&&&&else&&printf(&\nX不能被5整除&);&&&&&&&&return&&0; }2.编制程序:要求能从键盘上输入任意五个字符串,用指向指针的指针的方法或指针数组的方法对5个字符串排序并输出排序后的结果。答:main(){ int&&i; &&**p,*pstr[5],str[5][20]; f(i=0;i&5;i++) &&&&&&&&pstr[i]=str[i]; printf(&input&&5&&strings&&value:\n&); f(i=0;i&5;I++) &&&&&&scanf(&%s&,pstr[i]); p= st(p); printf(&output&&strings&&after&&st:\n&); f(i=0;i&5;i++) &&&&&&&&printf(&%s\n&,pstr[i]);}st(p)&&**p;{&&&&&&&&int&&i,j;&&&&&&&&&&&&&&&&*&&&&&&&&&&&&&&f(i=0;i&5;i++)&&&&&&&&&&&&&&{ &&&&&&f(j=i+1;j&5;j++) &&&&&&&&{&&&&&&&&if(strcmp(*(p+i),*(p+j))&0) &&&&&&&&&&&&&&&&&&{ &&&&&&pchange&&=&&*(p+i);
&&&&&&&&&&&&&&&&&&&&&&*(p+i)&&=&&*(p+j);
&&&&&&&&&&&&&&&&&&&&&&*(p+j)&&=&& &&&&&&&&&&&&&&&&&&} &&&&&&&&}&&&&&&}}
开通此文的版主/管理员 &
共有条评论
最近浏览过此文的胆友
字符长度:
积分:魅力奖章:
最近登陆时间:园区:
送TA魅力奖章
给TA发消息
版权所有 & 富士康科技集团 2010

我要回帖

更多关于 c语言中strlen的用法 的文章

 

随机推荐