任务33:指向字符串的指针变量 《编程语言-C语言》45分钟专题训练
|
2份
|
28页
|
76人阅读
|
1人下载
内容正文:
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目七: 指针
第33卷: 指向字符串的指针变量
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.执行以下程序段的运行结果是( )
main()
{char *p="abcde";
p+=3;
printf("%c",*p);
getch();}
A.d B.100 C.字符d的地址 D.有语法错误
2.以下4种叙述中,正确的一项是( )""
A. char *a="china";等价于char *a;*a="china";
B.char str[ ]={ "china"};等价于char str[10];str[ ]={ "china"};
C.char *s="china";等价于char *s;s="china";
D.char a[4]= "chi",b[4]= "chi";等价于char a[4]=b[4]= "chi";
3.下列程序的输出结果是( )
main()
{char s[ ]="cent";
printf("%c
",*s+2);
getch();}
A.c B.e C.n D.t
4.下列选项中,能够正确进行字符串赋值操作的语句是( )
A.char s[5]={"ABCDE"}; B.char *s;s="ABCDE";
C.char *s;scanf("%s",s); D.char s[5]={ 'A'、'B'、'C'、'D'、'E'};
5.下列选项中,正确的程序段是( )
A.char s[ ]= "12345",t[ ]= "6544d21";strcpy(s,t);
B.char s[20],*t="12345";strcat(s,t);
C.char s[20]= " ",*t="123456";strcat(s,t);
D.char *s="123456",*t="556789";strcat(s,t);
6.下列选项中,正确的一项是( )
A.char *s="girl";等价于char *s;*s="girl";
B.char s[10]={ "girl"};等价于char s[10];s[10]={ "girl"};
C.char *s="girl";等价于char *s;s="girl";
D.char s[4]= "girl",t[4]= "girl";等价于char s[4]=t[4]= "girl";
7.以下程序段的输出结果是( )
void fun(char *c)
{while(*c)
{if(*c>='a'&&*c<='z')
*c=*c-('a'-'A');
c++;}}
main()
{char s[20]="Hello Beijing";
fun(s);
puts(s);getch();}
A.hello beijing B. Hello Beijing
C.HELLO BEIJING D.HELLO Beijing
8.执行以下程序段的输出结果是( )
void fun(char *s)
{while(*s)
{if(*s%2==0) printf("%c",*s);
s++;}}
main()
{char a[ ]="good";
fun(a);
printf("
");
getch();}
A.d B.go C.god D.good
9.执行以下程序段的输出结果是( )
void fun(char *s)
{while(*s)
{if(*s%2) printf("%c",*s);
s++;}}
main()
{char a[ ]="2025TEST";
fun(a);
printf("
");getch();}
A.2025 B.TEST C.5EST D.5ES
10.执行以下程序段的输出结果是( )
void fun(char *s,char t[ ])
{int i,j=0,n;
n=strlen(s);
for(i=0;i<n;i++)
if(i%2!=0&&s[i]%2!=0)
{t[j]=s[i];j++;}
t[j]='\0';}
main()
{char s[20]="This is 2025 Test!",t[20];
fun(s,t);
printf("%s
",t);getch();}
A.This is 2025 Test! B.2025 C.si5s! D.TT!
11.设有定义:char *s="\ta\017bc";则指针变量s指向的字符串所占字节数为( )
A.5 B.6 C.7 D.9
12.设有语句段:char *s="\ta\018bc";for( ;*s!= '\0';s++) printf("*");,则for循序的执行次数是( )
A.5 B.6 C.7 D.9
13.下列选项中,不能正确进行字符串赋初值的语句是( )
A.char str[5]= "good!"; B.char *str="good!";
C.char str[ ]="good!"; D. char str[5]={ 'g', 'o', 'o', 'd'};
14.设有定义:char s[ ]= "It is a example!",*t="It is a example!";则下列选项中,叙述不正确的一项是( )
A.s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址
B.t目前所指字符串的内容不能改变,t重新赋值后可以指向其他字符串
C.t变量中存放的地址值可以改变
D.s中只能存放16个字符
15.设有语句:char s[ ]= "boy",*t;t=s;,则下列叙述中,正确的一项是( )
A.s数组和t指针变量完全相同
B.数组s中的内容和指针变量t中的内容相等
C.s数组长度和t所指向的字符串长度相等
D.*(++t)与s[1]相等
16.下列选项中,不能使指针指向一个字符串的选项是( )
A.char str[ ]= "string";char *ps;*ps=str;
B.char str[ ]="string";char *ps;ps=str;
C.char str[ ]="string",char *ps=str;
D.char *ps;ps=str;ps="string"
17.设有定义和语句:char s[20]= "hunan!",*p;,则执行p=s;语句后,下列叙述中,正确的一项是( )
A.可以用*p表示s[0]
B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量
D.数组s中的内容和指针变量p中的内容相等
18.设有定义:char *str;,则下列选项中能够使得字符型指针str正确指向一个字符串的是( )
A.char str[ ]="string";c=str; B.scanf("%s",str);
C.str=getchar( ); D.*str="string"
19.设有定义和语句:char str[ ]= "Hello!",*p;p=str;,此时*(p+5)中的值为( )
A. '\0' B. 'o' C.'o'的地址 D.不定值
20.执行以下程序段的输出结果是( )
main()
{char s[ ]="Hunan";
printf("%c
",*s+2);
getch();}
A.H B.J C.I D.74
21.执行以下程序段的输出结果是( )
main()
{char s[ ]="uvwxyz",*px;
px=s;
printf("%c
",*(px+5));getch();}
A.0 B.z C.y D.122
22.执行以下程序段的输出结果是( )
main()
{char s[10]="verygood",*ps=s;
ps+=4;
ps="name";
puts(s);getch();}
A.name B.veryname C.namegood D.verygood
23.执行以下程序段的输出结果是( )
int disp(char *str)
{while(*str) putchar(*str++);
return *str;}
main()
{printf("%d
",disp("HUNAN"));getch();}
A.HUNAN0 B.HUNANN C.HUNAN D.HUNAN\0
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(char *p)
{int i=0;
while(p[i])
{if(p[i]==' '&&(p[i-1]>='a'&&p[i-1]<='z'))
p[i-1]=p[i-1]-'a'+'A';
i++;}}
main()
{char s1[100]="ab cd EFG!";
fun(s1);
printf("%s
",s1);
getch();}
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char s1[ ]="programe",s2[ ]="Language";
char *p1=s1,*p2=s2;
int k;
for(k=0;k<8;k++)
if(*(p1+k)==*(p2+k))
printf("%s ",(p1+k));getch();}
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
char fun(char *c)
{if(*c<='Z'&&*c>='A')
*c-='A'-'a';
return *c;}
main()
{char s[ ]="OPEN the DOOR",*p=s;
while(*p)
{*p=fun(p);
putchar(*p);
p++;}
getch();}
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#define SIZE 10
void sub(char*a,int tl,int t2);
main( )
{ char s[SIZE];
int i;
for(i=0;i<SIZE;i++) s[i]='A'+i+32;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++) printf("%c",s[i]);
printf("
");getch();}
void sub(char *a,int tl,int t2)
{ char ch;
while(tl<t2)
{ ch=*(a+tl);
*(a+tl)=*(a+t2);
*(a+t2)=ch;
tl++;t2--;}}
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(char *a,char b)
{ while( *(a++)!='\0');
while(*(a-1)<b)
*(a--)=*(a-1);
*(a--)=b;}
main( )
{ char s[ ]="97531",c;
c='6';
fun(s,c);
puts(s);
getch();}
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fun(char *p,char *q)
{ int i;
char *pl=p,*ql;
for(i=0;*p!='\0';p++,i++)
{p=pl+i;
if(*p!=*q) continue;
for(ql=q+1,p=p+1;*p!='\0'&&*ql!='\0';ql++,p++)
if(*p!=*ql) break;
if(*ql=='\0') return i;}
return (-1);}
main( )
{ int a;
char s[80]="abcdabcdef",t[80]="cde";
a=fun(s,t);
printf("a=%d
",a);getch();}
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(char *s1,char*s2)
{ int j;
char *s=s1;
for( ;*s2!='\0';s2++)
{ for(j=0,s1=s;*s1!='\0';s1++)
if(*s1!=*s2)
{ s[j]=*s1;j++;}
s[j]='\0';}}
main( )
{char al[ ]="ASDFGHJ",a2[ ]="AH";
fun(al,a2);
puts(al);getch();}
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是:输入一行文字,找出其中的大写字母、小写字母、空格、数组及其他字符各有多少。程序中有三处错误,请改正。
#include <stdio.h>
#include<conio.h>
L1 main()
L2 {int upper=0,lower=0,digit=0,space=0,other=0,i=0;
L3 char *p,s[20];
L4 printf("input string:
");
L5 while(s[i]=getchar()!='
')
L6 i++;
L7 p=&s[0];
L8 while(p!='
')
L9 {if(('A'<=*p)&&(*p<='Z'))
L10 ++upper;
L11 else if(('a'<=*p)&&(*p<='z'))
L12 ++lower;
L13 else if(('9'<=*p)&&(*p<='0'))
L14 ++digit;
L15 else if(*p==' ')
L16 ++space;
L17 else ++other;
L18 p++;}
L19 printf("upper case:%d
",upper);
L20 printf("lower case:%d
",lower);
L21 printf("space case:%d
",space);
L22 printf("digit case:%d
",digit);
L23 printf("other case:%d
",other);
L24 getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.下列程序的功能是,实现两个字符串的比较。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int i=0,m;
char str1[20],str2[20],*p1,*p2;
printf("input two string:
");
scanf("%s",str1);
scanf("%s",str2);
p1=&str1[0];
p2=【1】;
while(【2】)
if(*(p1+i++)=='\0')
m=0;
if(m!=0)
m=【3】;
printf("result:%d
",m);
getch();}
33.以下程序的功能是:输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组中,统计一共有多少个整数,并输出这些数。请填空。
#include <stdio.h>
#include<conio.h>
main()
{char str[50],*pstr;
int i=0,j=0,k,m,x1,digit,ndigit=0,a[10],*pa;
printf("input a string:
");
gets(str);
pstr=&str[0];
pa=&a[0];
while(*(pstr+i)!='\0')
{if(【1】)j++;
else
{ if(j>0)
{digit=*(pstr+i-1)-48; k=1;
while(k<j)
{x1=1;
for(m=1;m<=k;m++) x1=x1*10;
digit=【2】;
k++;}
*pa=【3】; ndigit++;
pa++; j=0;}
}i++; }
if(j>0)
{digit=【4】; k=1;
while(k<j)
{x1=1;
for(m=1;m<=k;m++) x1=x1*10;
digit=digit+(*(pstr+i-1-k)-48)*x1;
k++;}
*pa=digit; ndigit++; j=0;}
printf("there are %d numbers in this line,they are:
",ndigit);
j=0; pa=&a[0];
for(j=0;j<ndigit;j++)
printf("%d ",【5】);
printf("
");getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。
《编程语言—C语言》
项目七: 指针
第33卷: 指向字符串的指针变量
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共23小题,每小题2分,共46分)
1.执行以下程序段的运行结果是( )
main()
{char *p="abcde";
p+=3;
printf("%c",*p);
getch();}
A.d B.100 C.字符d的地址 D.有语法错误
【答案】A
2.以下4种叙述中,正确的一项是( )""
A. char *a="china";等价于char *a;*a="china";
B.char str[ ]={ "china"};等价于char str[10];str[ ]={ "china"};
C.char *s="china";等价于char *s;s="china";
D.char a[4]= "chi",b[4]= "chi";等价于char a[4]=b[4]= "chi";
【答案】C
3.下列程序的输出结果是( )
main()
{char s[ ]="cent";
printf("%c
",*s+2);
getch();}
A.c B.e C.n D.t
【答案】B
4.下列选项中,能够正确进行字符串赋值操作的语句是( )
A.char s[5]={"ABCDE"}; B.char *s;s="ABCDE";
C.char *s;scanf("%s",s); D.char s[5]={ 'A'、'B'、'C'、'D'、'E'};
【答案】B
5.下列选项中,正确的程序段是( )
A.char s[ ]= "12345",t[ ]= "6544d21";strcpy(s,t);
B.char s[20],*t="12345";strcat(s,t);
C.char s[20]= " ",*t="123456";strcat(s,t);
D.char *s="123456",*t="556789";strcat(s,t);
【答案】C。指针不能连接指针。
6.下列选项中,正确的一项是( )
A.char *s="girl";等价于char *s;*s="girl";
B.char s[10]={ "girl"};等价于char s[10];s[10]={ "girl"};
C.char *s="girl";等价于char *s;s="girl";
D.char s[4]= "girl",t[4]= "girl";等价于char s[4]=t[4]= "girl";
【答案】C
7.以下程序段的输出结果是( )
void fun(char *c)
{while(*c)
{if(*c>='a'&&*c<='z')
*c=*c-('a'-'A');
c++;}}
main()
{char s[20]="Hello Beijing";
fun(s);
puts(s);getch();}
A.hello beijing B. Hello Beijing
C.HELLO BEIJING D.HELLO Beijing
【答案】C
8.执行以下程序段的输出结果是( )
void fun(char *s)
{while(*s)
{if(*s%2==0) printf("%c",*s);
s++;}}
main()
{char a[ ]="good";
fun(a);
printf("
");
getch();}
A.d B.go C.god D.good
【答案】A
9.执行以下程序段的输出结果是( )
void fun(char *s)
{while(*s)
{if(*s%2) printf("%c",*s);
s++;}}
main()
{char a[ ]="2025TEST";
fun(a);
printf("
");getch();}
A.2025 B.TEST C.5EST D.5ES
【答案】D
10.执行以下程序段的输出结果是( )
void fun(char *s,char t[ ])
{int i,j=0,n;
n=strlen(s);
for(i=0;i<n;i++)
if(i%2!=0&&s[i]%2!=0)
{t[j]=s[i];j++;}
t[j]='\0';}
main()
{char s[20]="This is 2025 Test!",t[20];
fun(s,t);
printf("%s
",t);getch();}
A.This is 2025 Test! B.2025 C.si5s! D.TT!
【答案】C
11.设有定义:char *s="\ta\017bc";则指针变量s指向的字符串所占字节数为( )
A.5 B.6 C.7 D.9
【答案】B
12.设有语句段:char *s="\ta\018bc";for( ;*s!= '\0';s++) printf("*");,则for循序的执行次数是( )
A.5 B.6 C.7 D.9
【答案】B
13.下列选项中,不能正确进行字符串赋初值的语句是( )
A.char str[5]= "good!"; B.char *str="good!";
C.char str[ ]="good!"; D. char str[5]={ 'g', 'o', 'o', 'd'};
【答案】A
14.设有定义:char s[ ]= "It is a example!",*t="It is a example!";则下列选项中,叙述不正确的一项是( )
A.s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址
B.t目前所指字符串的内容不能改变,t重新赋值后可以指向其他字符串
C.t变量中存放的地址值可以改变
D.s中只能存放16个字符
【答案】D
15.设有语句:char s[ ]= "boy",*t;t=s;,则下列叙述中,正确的一项是( )
A.s数组和t指针变量完全相同
B.数组s中的内容和指针变量t中的内容相等
C.s数组长度和t所指向的字符串长度相等
D.*(++t)与s[1]相等
【答案】D
16.下列选项中,不能使指针指向一个字符串的选项是( )
A.char str[ ]= "string";char *ps;*ps=str;
B.char str[ ]="string";char *ps;ps=str;
C.char str[ ]="string",char *ps=str;
D.char *ps;ps=str;ps="string"
【答案】A
17.设有定义和语句:char s[20]= "hunan!",*p;,则执行p=s;语句后,下列叙述中,正确的一项是( )
A.可以用*p表示s[0]
B.s数组中元素的个数和p所指字符串长度相等
C.s和p都是指针变量
D.数组s中的内容和指针变量p中的内容相等
【答案】A
18.设有定义:char *str;,则下列选项中能够使得字符型指针str正确指向一个字符串的是( )
A.char str[ ]="string";c=str; B.scanf("%s",str);
C.str=getchar( ); D.*str="string"
【答案】A
19.设有定义和语句:char str[ ]= "Hello!",*p;p=str;,此时*(p+5)中的值为( )
A. '\0' B. 'o' C.'o'的地址 D.不定值
【答案】A
20.执行以下程序段的输出结果是( )
main()
{char s[ ]="Hunan";
printf("%c
",*s+2);
getch();}
A.H B.J C.I D.74
【答案】B
21.执行以下程序段的输出结果是( )
main()
{char s[ ]="uvwxyz",*px;
px=s;
printf("%c
",*(px+5));getch();}
A.0 B.z C.y D.122
【答案】B
22.执行以下程序段的输出结果是( )
main()
{char s[10]="verygood",*ps=s;
ps+=4;
ps="name";
puts(s);getch();}
A.name B.veryname C.namegood D.verygood
【答案】D
23.执行以下程序段的输出结果是( )
int disp(char *str)
{while(*str) putchar(*str++);
return *str;}
main()
{printf("%d
",disp("HUNAN"));getch();}
A.HUNAN0 B.HUNANN C.HUNAN D.HUNAN\0
【答案】A
二、程序运行结果题(本题共7小题,每题3分,共21分)
24.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(char *p)
{int i=0;
while(p[i])
{if(p[i]==' '&&(p[i-1]>='a'&&p[i-1]<='z'))
p[i-1]=p[i-1]-'a'+'A';
i++;}}
main()
{char s1[100]="ab cd EFG!";
fun(s1);
printf("%s
",s1);
getch();}
【答案】aB cD EFG!
25.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
main()
{char s1[ ]="programe",s2[ ]="Language";
char *p1=s1,*p2=s2;
int k;
for(k=0;k<8;k++)
if(*(p1+k)==*(p2+k))
printf("%s ",(p1+k));getch();}
【答案】grame ame e
26.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
char fun(char *c)
{if(*c<='Z'&&*c>='A')
*c-='A'-'a';
return *c;}
main()
{char s[ ]="OPEN the DOOR",*p=s;
while(*p)
{*p=fun(p);
putchar(*p);
p++;}
getch();}
【答案】open the door
27.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
#define SIZE 10
void sub(char*a,int tl,int t2);
main( )
{ char s[SIZE];
int i;
for(i=0;i<SIZE;i++) s[i]='A'+i+32;
sub(s,7,SIZE-1);
for(i=0;i<SIZE;i++) printf("%c",s[i]);
printf("
");getch();}
void sub(char *a,int tl,int t2)
{ char ch;
while(tl<t2)
{ ch=*(a+tl);
*(a+tl)=*(a+t2);
*(a+t2)=ch;
tl++;t2--;}}
【答案】abcdefgjih
28.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(char *a,char b)
{ while( *(a++)!='\0');
while(*(a-1)<b)
*(a--)=*(a-1);
*(a--)=b;}
main( )
{ char s[ ]="97531",c;
c='6';
fun(s,c);
puts(s);
getch();}
【答案】976531
29.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
int fun(char *p,char *q)
{ int i;
char *pl=p,*ql;
for(i=0;*p!='\0';p++,i++)
{p=pl+i;
if(*p!=*q) continue;
for(ql=q+1,p=p+1;*p!='\0'&&*ql!='\0';ql++,p++)
if(*p!=*ql) break;
if(*ql=='\0') return i;}
return (-1);}
main( )
{ int a;
char s[80]="abcdabcdef",t[80]="cde";
a=fun(s,t);
printf("a=%d
",a);getch();}
【答案】a=6
30.以下程序的运行结果是( )
#include <stdio.h>
#include<conio.h>
void fun(char *s1,char*s2)
{ int j;
char *s=s1;
for( ;*s2!='\0';s2++)
{ for(j=0,s1=s;*s1!='\0';s1++)
if(*s1!=*s2)
{ s[j]=*s1;j++;}
s[j]='\0';}}
main( )
{char al[ ]="ASDFGHJ",a2[ ]="AH";
fun(al,a2);
puts(al);getch();}
【答案】SDFGJ
三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分)
31.下列程序的功能是:输入一行文字,找出其中的大写字母、小写字母、空格、数组及其他字符各有多少。程序中有三处错误,请改正。
#include <stdio.h>
#include<conio.h>
L1 main()
L2 {int upper=0,lower=0,digit=0,space=0,other=0,i=0;
L3 char *p,s[20];
L4 printf("input string:
");
L5 while(s[i]=getchar()!='
')
L6 i++;
L7 p=&s[0];
L8 while(p!='
')
L9 {if(('A'<=*p)&&(*p<='Z'))
L10 ++upper;
L11 else if(('a'<=*p)&&(*p<='z'))
L12 ++lower;
L13 else if(('9'<=*p)&&(*p<='0'))
L14 ++digit;
L15 else if(*p==' ')
L16 ++space;
L17 else ++other;
L18 p++;}
L19 printf("upper case:%d
",upper);
L20 printf("lower case:%d
",lower);
L21 printf("space case:%d
",space);
L22 printf("digit case:%d
",digit);
L23 printf("other case:%d
",other);
L24 getch();}
答案:
L5 while((s[i]=getchar())!='
')
L8 while(*p!='
')
L13 else if(('0'<=*p)&&(*p<='9'))
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分)
32.下列程序的功能是,实现两个字符串的比较。请填空。
#include <stdio.h>
#include<conio.h>
main()
{int i=0,m;
char str1[20],str2[20],*p1,*p2;
printf("input two string:
");
scanf("%s",str1);
scanf("%s",str2);
p1=&str1[0];
p2=【1】;
while(【2】)
if(*(p1+i++)=='\0')
m=0;
if(m!=0)
m=【3】;
printf("result:%d
",m);
getch();}
答案:①&str2[0] ②*(p1+i)==*(p2+i) ③(*(p1+i)-*(p2+i))
33.以下程序的功能是:输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组中,统计一共有多少个整数,并输出这些数。请填空。
#include <stdio.h>
#include<conio.h>
main()
{char str[50],*pstr;
int i=0,j=0,k,m,x1,digit,ndigit=0,a[10],*pa;
printf("input a string:
");
gets(str);
pstr=&str[0];
pa=&a[0];
while(*(pstr+i)!='\0')
{if(【1】)j++;
else
{ if(j>0)
{digit=*(pstr+i-1)-48; k=1;
while(k<j)
{x1=1;
for(m=1;m<=k;m++) x1=x1*10;
digit=【2】;
k++;}
*pa=【3】; ndigit++;
pa++; j=0;}
}i++; }
if(j>0)
{digit=【4】; k=1;
while(k<j)
{x1=1;
for(m=1;m<=k;m++) x1=x1*10;
digit=digit+(*(pstr+i-1-k)-48)*x1;
k++;}
*pa=digit; ndigit++; j=0;}
printf("there are %d numbers in this line,they are:
",ndigit);
j=0; pa=&a[0];
for(j=0;j<ndigit;j++)
printf("%d ",【5】);
printf("
");getch();}
答案:①(*(pstr+i)>='0')&&(*(pstr+i)<='9')
②digit+(*(pstr+i-1-k)-48)*x1 ③digit
④*(pstr+i-1)-48 ⑤*(pa+j)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$