广州大学实验报告练习总结题.docx

上传人:b****5 文档编号:8102714 上传时间:2023-01-28 格式:DOCX 页数:14 大小:21.17KB
下载 相关 举报
广州大学实验报告练习总结题.docx_第1页
第1页 / 共14页
广州大学实验报告练习总结题.docx_第2页
第2页 / 共14页
广州大学实验报告练习总结题.docx_第3页
第3页 / 共14页
广州大学实验报告练习总结题.docx_第4页
第4页 / 共14页
广州大学实验报告练习总结题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

广州大学实验报告练习总结题.docx

《广州大学实验报告练习总结题.docx》由会员分享,可在线阅读,更多相关《广州大学实验报告练习总结题.docx(14页珍藏版)》请在冰豆网上搜索。

广州大学实验报告练习总结题.docx

广州大学实验报告练习总结题

一、实验一:

预习题(选择题)

1、不正确的C程序描述是B

A.每个语句和数据定义的最后必须有个分号

B.一个C程序的书写格式要求严格,一行只能写一个语句

C.C语言的本身没有输入输出语句

D.一个C程序总是从main()函数开始执行

2、以下C语言正确结构形式的描述是C

A.main()函数必须放在程序之首

B.每一行只能写一个语句,每个语句之后必须有分号

C.C语言没有输入输出语句

D.C语言的自由度大,可以从任何函数执行

3、在C语言系统中,假设int类型数据占2个字节,则double、long、unsignedint、char类型数据所占字节数分别多少D

A.8,2,4,1B.2,8,4,1C.4,2,8,1D.8,4,2,1

4、下面叙述不正确的是B

A.C语句末尾必须有分号

B.C语言中无论是整数还是实数都能准确的表示

C.运算符“%”只能用于整数运算

D.乘除运算符优先级高于加减运算符

5、若有说明语句:

inta;floatb;,以下输入语句正确的是C

A.scanf("%f%f",&a,&b);B.scanf("%f%d",&a,&b);

C.scanf("%d,%f",&a,&b);D.scanf("%6.2f%6.2f",&a,&b);

6、下面不属于C语言的数据类型是C

A.整型B.实型C.逻辑型D.双精度实型分析

7、已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为C

A.int型B.float型C.double型D.char型分析

8、下面四个选项中,均是不合法的用户标识符的选项是C

A.BA、x_0、doB.float、1a0、_Y

B.C.x-y、goto、123D._123、tmp、CHAR

9、下面正确的字符常量是B

A."a"B.'\\'C."\n"D."\376"

10、已知m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!

n)的值是B

A.0B.1C.真D.非0

一、实验二:

预习题(选择题)

1、下面程序段

intk=2;

while(k=0){printf(“%d”,k);k--;}

则下面描述中正确的是C

A.while循环执行10次B.循环是无限循环

C.循环题语句一次也不执行D.循环体语句执行一次

2、以下程序段的循环次数是B

  for(i=2;i==0;)printf(“%d”,i--);

A.无限次B.0次C.1次D.2次

3、下面程序的输出结果是B

        main()

        {charc=’A’;

intk=0;

do{

    switch(c++){

          case‘A’:

k++;break;

          case‘B’:

k--;

          case‘C’:

k+=2;break;

          case‘D’:

k%=2;continue;

          case‘E’:

k*=10;break;

          default:

k/=3;

    }

    k++;

}while(c<’G’);

printf(“k=%d”,k);

        }

A.k=3

B.k=4

C.k=2

D.k=0

4、下面程序的输出结果是B

        main()

        {intx=9;

           for(;x>0;x--){

if(x%3==0){

   printf(“%d”,--x);

   continue;

}

           }

        }

A.741

B.852

C.963

D.875421

5、下述程序段的运行结果是C

inta=1,b=2,c=3,t;

while(a

printf(“%d,%d,%d”,a,b,c);

A.1,2,0B.2,1,0C.1,2,1D.2,1,1

6、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择A  填空。

main()

{intm=0,n=0;

   charc;

   while((【】)!

’\n’)

{

       if(c>=’A’&&c<=’Z’)m++;

       if(c>=’a’&&c<=’z’)n++;

   }

}

A.c=getchar()B.getchar()C.c==getchar()D.scanf(“%c”,&c)

7、下述语句执行后,变量k的值是B

intk=1;

while(k++<10);

A.10B.11C.9D.无限循环,值不定

8、下面程序的输出结果是B

main()

{intk=0,m=0,i,j;

 for(i=0;i<2;i++){

    for(j=0;j<3;j++)

        k++;

    k-=j;

 }

 m=i+j;

 printf(“k=%d,m=%d”,k,m);

}

A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=5

9、下面for循环语句B

        inti,k;

        for(i=0,k=-1;k=1;i++,k++)

           printf(“***”);

A.判断循环结束的条件非法B.是无限循环

C.只循环一次D.一次也不循环

10、执行语句for(i=1;i++<4;);后变量i的值是C

A.3B.4C.5D.不定

一、实验三:

预习题(选择题)

1.以下正确的说法是B。

A.用户若需要调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,如若此,该函数将失去原有定义

C.系统不允许用户重新定义标准库函数

D.用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

2.以下正确的说法是A。

A.实参和与其对应的形参各占用独立的存储单元

B.实参和与其对应的形参共占用一个存储单元

C.只有当实参和与其对应的形参同名时才共占用相同的存储单元

D.形参时虚拟的,不占用存储单元

3.以下正确的函数定义是A。

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(intx,inty);

D.doublefun(intx,y)

4.若调用一个函数,且此函数中没有return语句,则正确的说法是D。

A.该函数没有返回值

B.该函数返回若干个系统默认值

C.能返回一个用户所希望的函数值

D.返回一个不确定的值

5.以下不正确的说法是B。

A.实参可以是常量,变量或表达式

B.形参可以是常量,变量或表达式

C.实参可以为任意类型

D.如果形参和实参的类型不一致,以形参类型为准

6.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是B。

A.地址传递

B.值传递

C.有实参传给形参,再由形参传给实参

D.由用户指定传递方式

7.以下程序有语法错误,有关错误原因的正确说法是C。

main()

{intG=5,k;

voidprt_char();

……

k=prt_char(G);

……

}

A.语句voidprt_char();有错,它是函数调用语句,不能用void说明

B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾

D.函数名不能使用下划线

8.C语言规定,函数返回值的类型是由决定的D。

A.return语句中的表达式类型

B.调用该函数时的主调函数类型

C.调用该函数时由系统临时

D.在定义函数时所指定的函数类型

9.以下正确的描述是B。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

10.若用数组名作为函数调用的实参,传递给形参的是A。

A.数组的首地址

B.数组中第一个元素的值

C.数组中的全部元素的值

D.数组元素的个数

二、实验四:

预习题(选择题)

1.变量的指针,其含义是指该变量的B。

A)值B)地址C)名D)一个标志

2.已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是B。

A)k=*ptr1+*ptr2B)ptr2=kC)ptr1=ptr2D)k=*ptr1*(*ptr2)

3.若有说明:

int*p,m=5,n;以下程序段正确的是D。

A)p=&n;B)p=&n;

scanf(“%d”,&p);scanf(“%d”,*p);

C)scanf(“%d”,&n);D)p=&n;

*p=n;*p=m;

4.已有变量定义和函数调用语句:

inta=25;print_value(&a);下面函数的输出结果是D。

voidprint_value(int*x)

{printf(“%d\n”,++*x);}

A)23B)24C)25D)26

5.若有说明:

int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是C。

A)p1=&m;p2=&p1;B)p1=&m;p2=&n;*p1=*p2;

C)p1=&m;p2=p1;D)p1=&m;*p1=*p2;

6.若有语句:

int*p,a=4;和p=&a;下面均代表地址的一组选项是D。

A)a,p,*&aB)&*a,&a,*pC)*&p,*p,&aD)&a,&*p,p

7.下面判断正确的是C。

A)char*a=”china”;等价于char*a;*a=”china”;

B)charstr[10]={“china”};等价于charstr[10];str[]={“china”;}

C)char*s=”china”;等价于char*s;s=”china”;

D)charc[4]=”abc”,d[4]=”abc”;等价于charc[4]=d[4]=”abc”;

8.下面程序段中,for循环的执行次数是C。

char*s="\ta\018bc";

for(;*s!

='\0';s++)

printf("*");

A)9B)7C)6D)5

9.下面能正确进行字符串赋值操作的是C。

A)chars[5]={“ABCDE”};B)chars[5]={‘A’,’B’,’C’,’D’,’E’};

C)char*s;s=”ABCDE”;D)char*s;scanf(“%s”,s);

10.下面程序段的运行结果是C。

char*s=”abcde”;

s+=2;printf(“%d”,s);

A)cdeB)字符’c’C)字符’c’的地址D)不确定

11.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是B。

A)c=*p1+*p2B)p2=cC)p1=p2D)c=*p1*(*p2)

12.设有程序段:

chars[]=”china”;char*p;p=s;则下面叙述正确的是D。

A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等

D)*p与s[0]相等

13.以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是D。

A)strcpy1(char*p1,char*p2)

{while((*p1++=*p2++)!

=’\0’);}

B)strcpy2(char*p1,char*p2)

{while((*p1=*p2)!

=’\0’){p1++;p2++}}

C)strcpy3(char*p1,char*p2)

{while(*p1++=*p2++);}

D)strcpy4(char*p1,char*p2)

{while(*p2)*p1++=*p2++;}(差个’\0’)

14.下面程序段的运行结果是C。

chara[]=”language”,*p;

p=a;

while(*p!

=’u’){printf(“%c”,*p-32);p++;}

A)LANGUAGEB)languageC)LANGD)langUAGE

15.若有语句:

chars1[]=”string”,s2[8],*s3,*s4=”string2”;则库函数strcpy的错误调用是ABCD。

A)strcpy(s1,”string2”);B)strcpy(s4,”string1”);

C)strcpy(s3,”string1”);D)strcpy(s1,s2);

16.以下与库函数strcmp(char*s,char*t)功能相等的程序段是C。

A)strcmp1(char*s,char*t)

{for(;*s++=*t++;)

if(*s==’\0’)return0;

return(*s-*t);

}

B)strcmp2(char*s,char*t)

{for(;*s++=*t++;)

if(!

*s)return0;

return(*s-*t);

}

C)strcmp3(char*s,char*t)

{for(;*t==*s;)

{if(!

*t)return0;t++;s++;}

return(*s-*t);

}

D)strcmp4(char*s,char*t)

{for(;*s==*t;s++,t++)

if(!

*s)return0;

return(*t-*s);

}

17.以下说明不正确的是D。

A)chara[10]=”china”;B)chara[10],*p=a;p=”china”;

C)char*a;a=”china”;D)chara[10],*p;p=a=”china”;

18.设有说明语句:

chara[]=”Itismine”;char*p=”Itismine”;则以下不正确的叙述是D。

A)a+1表示的是字符t的地址

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

19.若已定义chars[10];则在下面表达式中不表示s[1]的地址是B。

A)s+1B)s++C)&s[0]+1D)&s[1]

20.若有定义:

inta[5],*p=a;则对a数组元素的正确引用是D。

A)*&a[5]B)a+2C)*(p+5)D)*(a+2)

21.若有定义:

inta[5],*p=a;则对a数组元素地址的正确引用是D。

A)p+5(溢出)B)*a+1C)&a+1D)&a[0]

22.若有定义:

inta[2][3];则对a数组的第i行第j列元素值的正确引用是A。

A)*(*(a+i)+j)B)(a+i)[j]C)*(a+i+j)D)*(a+i)+j

23.若有定义:

inta[2][3];则对a数组的第i行第j列元素地址的正确引用是D。

A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j

24.若有程序段:

inta[2][3],(*p)[3];p=a;则对a数组元素地址的正确引用是C。

A)*(p+2)B)p[2]C)p[1]+1D)(p+1)+2

25.若有程序段:

inta[2][3],(*p)[3];p=a;则对a数组元素的正确引用是C。

A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+2

26.在C程序中,指针变量能够赋地址值或null值。

27.在C语言中,数组名是一个不可改变的地址,不能对它进行赋值运算。

28.若有定义语句:

inta[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是2。

29.若有定义:

inta[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是12,*(a[1]+2)的值是12。

30若有程序段:

int*p[3],a[6],i;

for(i=0;i<3;i++)

p[i]=&a[2*i];

则*p[0]引用的是a数组元素a[0],*(p[1]+1)引用的是a数组元素a[4]。

◆程序填空题

1.下面函数的功能是从输入的十个字符串中找出最大的那个串,请填

(2)空使程序完整。

voidfun(charstr[10][81],char**sp)

{inti;

*sp=【str[0]】;

for(i=1;i<10;i++)

if(strlen(*sp)

【*sp=str[i]】;

}

2.下面函数的功能是将一个整数字符串转换为一个整数,例如:

”-1234”转换为1234,请填(3)空使程序完整。

intchnum(char*p)

{intnum=0,k,len,j;

len=strlen(p);

for(;【*p!

='\0'】;p++)

{

k=【*p-'0'】;

j=(--len);

while(【j-->0】)

k=k*10;

num=num+k;

}

return(num);

}

3.下面函数的功能统计子串substr在母串str中出现的次数,请填(3)空使程序完整。

intcount(char*str,char*substr)

{inti,j,k,num=0;

for(i=0;【str[i]!

='\0'】;i++)

for(【j=i】,k=0;

substr[k]==str[j];k++,j++)

if(substr[【k+1】]==’\0’){

num++;

break;

}

return(num);

}

4.下面函数的功能是用递归法将一个整数存放到一个字符数组中,存放时按逆序存放,如483存放成“384”,请填

(2)空使程序完整。

voidconvert(char*a,intn)

{inti;

*a=【n%10+'0'】;

if((i=n/10)!

=0)

convert(【++a】,i);

}

5.下面函数的功能是用递归法求数组中的最大值及下标值,请填

(2)空使程序完整。

voidfindmax(int*a,intn,inti,int*pk)

{if(i

if(a[i]>a[*pk])

【*pk=i;】;

findmax(【a,n,i+1,pk】);

}

}

6.下面函数的功能是将两个字符串s1和s2连接起来,请填(3)空使程序完整。

voidconj(char*s1,char*s2)

{

char*p=s1;

while(*s1)【s1++】;

while(*s2){*s1=【*s2】;s1++,s2++;}

*s1=’\0’;

【return0】;

实验五:

预习题(判断正误)

1.在PC机中,标准输入设备是指键盘(t)

2.一个C语言程序可以包含多个源程序文件(t)

3.函数是C语言的基本单位,当以指针变量作为函数参数时,参数传递就不是值传递了(f);

4.当定义一个返回指针的函数时,所返回的指针变量可以是自动变量(f)

5.数组是同类数据的一个集合,数组元素在内存中的存储不一定是连续的(f)

6.C语言中数组名同时也是一个指针变量,且该指针变量可以赋给它一个不同的值(f)

7.结构体是同类数据的集合(f)

8.共用体是同类数据的集合(f)

9.结构体是一种用户定义的数据类型,因此可以定义结构体类型的数组(t)

10.scanf(…)是一个格式化输入函数,用于从文件中读入数据(f)

一、实验六:

预习题(判断正误)

1.采用顺序、选择和循环可以实现任意复杂的程序设计(t);

2.结构化分析方法主要是指分析问题时采取自下而下、逐步求精的思想(t)

3.一个C语言程序可以包含多个源程序文件(t)

4.在C语言中,以函数作为程序的基本单元,可以确保C语言程序的模块化结构(t);

5.函数是C语言的基本单位,当以指针变量作为函数参数时,可以返回函数中经处理的数据,因此此时的函数传递不是值传递(f);

6.数组是同类数据的一个集合,数组元素在内存中的存储不一定是连续的(f)

7.结构体是同类数据的集合,结构体内部不能再出现另一结构体变量(f)

8.共用体是同类数据的集合,一个共用体变量所占的空间等于各个成员所占空间的总和(f)

9.结构体是一种用户定义的数据类型,因此可以定义结构体类型的数组(t)

10.fscanf(…)是一个格式化输入函数,用于从文件中读入数据(t)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1