




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一:预习题(选择题)1、不正确的C程序描述是B每个语句和数据定义的最后必须有个分号一个C程序的书写格式要求严格,一行只能写一个语句C语言的本身没有输入输出语句一个C程序总是从main()函数开始执行2、以下C语言正确结构形式的描述是Cmain()函数必须放在程序之首每一行只能写一个语句,每个语句之后必须有分号C语言没有输入输出语句C语言的自由度大,可以从任何函数执行3、在C语言系统中,假设int类型数据占2个字节,则double、long、unsignedint、char类型数据所占字节数分别多少D8,2,4,1B.2,8,4,1C.4,2,8,1D.8,4,2,14、下面叙述不正确的是BC语句末尾必须有分号C语言中无论是整数还是实数都能准确的表示运算符“%”只能用于整数运算乘除运算符优先级高于加减运算符5、若有说明语句:inta;floatb;,以下输入语句正确的是Cscanf("%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整型B.实型C.逻辑型D.双精度实型分析7、已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为Cint型B.float型C.double型D.char型分析8、下面四个选项中,均是不合法的用户标识符的选项是CBA、x_0、doB.float、1a0、_YC.x-y、goto、123D._123、tmp、CHAR9、下面正确的字符常量是B"a"B.'\\'C."\n"D."\376"10、已知m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!n)的值是B0B.1C.真D.非0实验二:预习题(选择题)1、下面程序段intk=2;while(k=0){printf(“%d”,k);k--;}则下面描述中正确的是CA.while循环执行10次B.循环是无限循环C.循环题语句一次也不执行D.循环体语句执行一次2、以下程序段的循环次数是B
for(i=2;i==0;)printf(“%d”,i--);4、下面程序的输出结果是B
main()
{intx=9;
for(;x>0;x--){if(x%3==0){
printf(“%d”,--x);
continue;}
}
}7418529638754215、下述程序段的运行结果是Cinta=1,b=2,c=3,t;while(a<b<c){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c);A.1,2,0B.2,1,0C.1,2,1D.2,1,16、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择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的值是Bintk=1;while(k++<10);A.10B.11C.9D.无限循环,值不定8、下面程序的输出结果是Bmain(){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=59、下面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的值是CA.3B.4C.5D.不定实验三:预习题(选择题)以下正确的说法是B。用户若需要调用标准库函数,调用前必须重新定义用户可以重新定义标准库函数,如若此,该函数将失去原有定义系统不允许用户重新定义标准库函数用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。以下正确的说法是A。实参和与其对应的形参各占用独立的存储单元实参和与其对应的形参共占用一个存储单元只有当实参和与其对应的形参同名时才共占用相同的存储单元形参时虚拟的,不占用存储单元以下正确的函数定义是A。doublefun(intx,inty)doublefun(intx;inty)doublefun(intx,inty);doublefun(intx,y)若调用一个函数,且此函数中没有return语句,则正确的说法是D。该函数没有返回值该函数返回若干个系统默认值能返回一个用户所希望的函数值返回一个不确定的值以下不正确的说法是B。实参可以是常量,变量或表达式形参可以是常量,变量或表达式实参可以为任意类型如果形参和实参的类型不一致,以形参类型为准C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是B。地址传递值传递有实参传给形参,再由形参传给实参由用户指定传递方式以下程序有语法错误,有关错误原因的正确说法是C。main(){intG=5,k;voidprt_char();……k=prt_char(G);……}语句voidprt_char();有错,它是函数调用语句,不能用void说明变量名不能使用大写字母函数说明和函数调用语句之间有矛盾函数名不能使用下划线C语言规定,函数返回值的类型是由决定的D。return语句中的表达式类型调用该函数时的主调函数类型调用该函数时由系统临时在定义函数时所指定的函数类型以下正确的描述是B。函数的定义可以嵌套,但函数的调用不可以嵌套函数的定义不可以嵌套,但函数的调用可以嵌套函数的定义和函数的调用均不可以嵌套函数的定义和函数的调用均可以嵌套若用数组名作为函数调用的实参,传递给形参的是A。数组的首地址数组中第一个元素的值数组中的全部元素的值数组元素的个数实验四:预习题(选择题)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)265.若有说明: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,p7.下面判断正确的是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)59.下面能正确进行字符串赋值操作的是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)langUAGE15.若有语句: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)+j23.若有定义:inta[2][3];则对a数组的第i行第j列元素地址的正确引用是D。A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j24.若有程序段:inta[2][3],(*p)[3];p=a;则对a数组元素地址的正确引用是C。A)*(p+2)B)p[2]C)p[1]+1D)(p+1)+225.若有程序段:inta[2][3],(*p)[3];p=a;则对a数组元素的正确引用是C。A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+226.在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)<strlen(str[i])) 【*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<n){if(a[i]>a[*pk]) 【*pk=i;】;findmax(【a,n,i+1,pk】);}}6.下面函数的功能是将两个字符串s1和s2连接起来,请填(3)空使程序完整。voidconj(char*s1,ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏引领成长
- 英语阅读解析
- 英语学习的新途径
- 英语单词记忆策略
- 2025家用电器购销合同范本
- 艺术教育启蒙
- 2025年上海房屋租赁简单合同范本
- 直肠癌化疗的护理
- 组件出货管理
- 农耕研学项目活动:传承农耕文化探索自然奥秘
- 剪叉式升降工作平台作业专项施工方案24
- 2024中考地理复习知识要点提纲(-商务星球版-)
- 铅锌矿的矿石加工与冶炼技术改进
- 《群英会蒋干中计》课件 2023-2024学年高教版中职语文基础模块下册
- 2024年地基基础(基桩静荷载试验)知识考试题库(供参考)
- 保密管理与人工智能技术发展
- 毒理学新技术
- 新生儿贫血护理查房课件
- 电信电源专业应急预案
- “0”何去何从-小数近似数的教学思考与实践 论文
- GMW 17408-2017 Flexible Expanded Rubber And Rubber-Like Materials原版完整文件
评论
0/150
提交评论