C语言基础知识综合练习题集_第1页
C语言基础知识综合练习题集_第2页
C语言基础知识综合练习题集_第3页
C语言基础知识综合练习题集_第4页
C语言基础知识综合练习题集_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语百基本知识和基本语句(一)选择题1.设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是(A)'a'&&'b'B)a<=bC)A)'a'&&'b'B)a<=bC)a||b+c&&b-cD)!((a<b)&&!C||1)char型变量,其值为A字符,且有表达式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch,则表达式ch的值是ch=(ch>='A'&&ch<='Z')?(ch+32):ch,则表达式ch的值是()字符。A)B)C)ZD)型变量,x=100,y=200,且有程序段:printf(“%d”,(x,y));则输出结果是(A)200B)100C)100,200A)200B)100C)100,200D)输出格式不够,输出不确定的值C语言中最简单的数据类型包括(A)整型、实型、逻辑型B)整型、单精度型、双精度、字符型C)整型、字符型、逻辑型D)A)整型、实型、逻辑型B)整型、单精度型、双精度、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型C语言中,运算对象必须是整型的运算符是(A)%B)/A)%B)/C)%D)**数学关系x>y>z,它对应C语言表达式是(A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)以下说法中正确的是(A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C语言程序总是从main()函数开始执行C语言程序中的main()函数必须放在程序的开始部分8.设intx=10,y=3,z;则语句printf("%d\n,z=(x%y,x/y));的输出结果是9.A)18.设intx=10,y=3,z;则语句printf("%d\n,z=(x%y,x/y));的输出结果是9.A)1B)0C)D)3C语言表达式10!=9的值是(A)trueB)非零值C)D).合法的C语言字符常量是(B)“A”C)65D)B)“A”C)65D).若int类型数据占两个字节,则下列语句的输出为(intk=-1;printf("%d,%u\n,k,k);printf("%d,%u\n,k,k);B)-1,32767C)-1,32768D)-1,65535.组成C语言程序的是(A)子程序B)过程C)函数D)主程序和子程序.以下的选项中,正确的赋值语句是(D)y=int(x);A)i++;B)a=1,b=2;C)a=b=5D)y=int(x);.以下不符合C语言语法的语句是()。D)y=float(i)A)i++;B)i=j=5;C)k=2*4,k*4;D)y=float(i).下列程序的输出结果是()。main(){inta=9;a+=a-=a+a;printf("%d\n",a);}A)18B)9C)-18D)-9TOC\o"1-5"\h\z.下列语句的输出结果是()。printf("%d\n”,(int)(2.5+3.0)/3);D)0A)有语法错误不能通过编译B)2C)1D)0.下列程序的输出是()。main(){inta=7,b=5;printf("%d\n",b=b/a);}D)0A)有语法错误不能通过编译B)2C)1D)0.请阅读程序(

main(){inta;floatb,c;scanf("%2d%3f%4f”,&a,&b,&c);printf("\na=%d,b=%f,c=%f\n”,a,b,c);}若运行时从键盘上输入9876543210<CR>(CR表示回车),则上面程序的输出结果是B)a=10,b=432,c=8765D)a=98,b=765.0,c=4321.0B)a=10,b=432,c=8765D)a=98,b=765.0,c=4321.0C)a=98,b=765.000000,c=4321.000000.以下程序的输出结果是()。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(%d%d%d\n”,k,a,b);}D)004A)104B)103C)00D)004.下列程序的输出结果是()。main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a:++b;j=a++;k=b;printf(i=%d,j=%d,k=%d\n”,i,j,k);}A)i=2,j=1,k=3B)i=1,j=1,k=2C)i=4,j=2,k=4D)i=1,j=1,k=3(二)填空题.在C语言中,double类型数据占个字节;char类型数据占个字节。.设C语言中,int类型数据占2个个字节,则long类型数据占个字节;unsignedint类型数据占个字节;short类型数据占个字节;.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.37))值的数据类型为.假设m是一个三位数,从左到右用a,b,c表示每一位的数字,若从左到右数字是bac的三位数,则在C语言中用m表示bac的表达式是二、C语言选择和循环结构.在C语言中,能代表逻辑值“真”的是()。A)trueB)大于0的数C)非0整数D)非0的数.若给定条件表达式(M)?(a++):(a--);则其中表达式MA)和(M==0)等价B)和(M==1)等价C)和(M!=0)等价D)和(M!=1)等价.在C语言的if语句中,用作判断的表达式是()。A)关系表达式B)逻辑表达式C)算术表达式D)任意表达式.若变量已正确定义,则以下程序段的输出为()。

inta=2;b=3;printf(a>b?****a=%d":"###b=%d",b);A)没有正确的输出格式控制A)没有正确的输出格式控制C)###b=35.以下程序段的输出结果为(inta=1;b=2,c=2,t=0;while(a<b){t=a;a=b;b=t;c++;}printf("%d,%d,%d”1,2,0B)2,1,0***a=2D)***a=2####b=3)°,a,b,c);C)1,2,1D)2,1,36.已知intx=10,y=20,z=30;6.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()。if(x>y)z=x;x=y;y=z;A)x=10,y=20,z=30C)x=20,y=30,z=107.以下程序的运行结果是(main(){intm=5;if(m++>5)printf(elseprintf(B)x=20,y=30,z=30D)x=20,y=30,z=20)°"%d\n",m);%d\n”,m--);}A)4B)5C)6D)7

A)4B)5C)6D)7.以下不正确的语句是(A)if(x>y);if(x=y)&&(x!=0)x+=y;if(x!=y)scanf("%d",&x);elsescanf("%d",&y);if(x<y){x++;y++;}.若w、x、v、z、m均为int型变量,则执行下面语句后的m值是()。w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;A)1B)2C)3D)4.下面有关for循环的正确描述是()。for循环只能用于循环次数已经确定的情况for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体中,可包含多条语句,但必须用花括号括起来.若i为整数变量,则以下循环执行的次数是()。for(i=2;i==0;)printf("%d”,i--);A)无限次0次A)无限次0次1次2次.执行语句for(i=1;i++<4;);后变量i的值是(A)3B)4C)5D)不定.以下正确的说法是()。A)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)在多层循环嵌套中退出时,只能使用goto语句.以下程序的功能是判断输入的年份是否是闰年。请在填入正确内容main(){inty,f;scanf(%d",&y);if(y%400==0)f=1;elseif(8)f=1;else②;if(f)printf(%dis”,y);elseprintf(%disnot”,y);printf(aleapyear\n");}.有四个数a,b,c,d要求按从大到小的顺序输出请在内填入正确内容main(){inta,b,c,d,t;scanf(%d%d%d%d”,&a,&b,&c,&d);if(a<b){t=a;a=b;b=t;}if(①){t=a;a=d;d=t;}if(a<c){t=a;a=c;c=t;}if(CD){t=b;b=c;c=t;}if(b<d){t=b;b=d;d=t;}if(c<d){t=c;c=d;d=t;}printf(%d%d%d%d\n”,a,b,c,d);}.以下程序的功能是()。从键盘输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。main(){floatx,amax,amin;scanf(%f",&x);amax=x;amin=x;while(①){if(x>amax)amax=x;if(②)amin=x;scanf(%f",&x);}printf(\namax=%f\namin=%f\n",amax,amin);}17.以下程序的功能是计算1-3+5-7+……-99+101的值,请填空。main(){inti,t=1,s=0;for(i=1;i<=101;i+=2){①;s=s+t;②;}printf(%d\n”,s);}或:main(){inti,t=1,s=0;for(i=1;i<=101;i+=2){js=s+t*i;③;}printf(%d\n”,s);}.若用0至9之间不同的三个数构成一个三位数,下面程序统计出共有多少种方法。请填空。main(){inti,j,k,count=0;for(i=1;i<=9;i++)for(j=0;j<=9;j++)if(①)continue;elsefor(k=0;k<=9;k++)if(②)count++;printf(%d”,count);}.下面的程序功能是打印100以内个位数为6,且能被3整除的所有数。请填空。main(){inti,j;for(i=0;®;i++){j=i*10+6;if(②)continue;printf(%d",j);}}、C语言数组练习(一)选择题.以下对C语言字符数组的描述错误的是()。A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值字符串D)不可以用关系运算符对字符数组中的字符串进行比较.不能把字符串Hell0!赋给数组b的语句是()。charb[10]={H','e','l','l','o','!'};charb[10];b="Hello!”;charb[10]={H','e','l','l','o','!','\0'};charb[10]=Hello!”;.合法数组定义是()。A)inta[]="string”;B)inta[5]={0,1,2,3,4,5};C)chara="string”;D)chara[]={0,1,2,3,4,5};.以下能对二维数组a进行正确初始化的语句是()。A)inta[2][]={{1,0,1},{5,2,3}};B)inta[][3]={{1,2,3},{4,5,6}};C)inta[2][4]={{1,2,3},{4,5},{6}};D)inta[][3]={{1,0,1}{},{1,1}};.若有说明inta[3][4]={0};则下面正确的叙述是(

A)只有元素a[0][0]可得到初值0B)此说明语句不正确TOC\o"1-5"\h\zC)数组a中各元素都可得到初值,但其不一定为0D)数组a中各元素都可得到初值0.在C语言中,引用数组元素时,其数组下标的数据类型允许是()。A)整型常量B)整型表达式C)整型常量和整型表达式D)任何类型的表达式.以下对一维整型数组a的正确说明是()。A)inta(10);B)intn=10,a[n];C)intn;D)#defineSIZE10scanf(%d",&n);inta[SIZE];inta[n];TOC\o"1-5"\h\z.若有说明inta[10];则对a数组元素的正确引用是()。A)a[10]B)a[3.5]C)a(5)D)a[10-10].以下对二维数组a的正确说明是()。A)inta[3][];B)floata(3,4);C)doublea[1][4];D)floata⑶(4);.若有说明inta[3][4];则对a数组元素的正确引用是()。A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1)

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1).若有说明inta[3][4];则对a数组元素的非法引用是()。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4].对inta[10]={6,7,8,9,10};说明语句的正确理解是()。A)将5个初值依次赋给a[1]至a[5],其余元素赋0值;B)将5个初值依次赋给a[0]至a[4],其余元素赋0值;C)将5个初值依次赋给a[6]至a[10],其余元素赋0值;D)因为数组长度与初值的个数不相同,所以此语句不正确;.定义如下变量和数组intk;inta[3][3]={1,2,3,4,5,6,7,8,9};则执行for(k=0;k<3;k++)printf(%d",a[k][2-k]);语句的输出结果是()。A)357B)369C)159D)147TOC\o"1-5"\h\z.判断字符串a和b是否相等,应当使用()。A)if(a==b)B)if(a=b)C)if(strcpy(a,b))D)if(strcmp(a,b))A)if(s1>s2).判断字符串s1是否大于字符串s2,应当使用()。A)if(s1>s2)B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0)D)if(strcmp(s1,s2)>0)C)if(strcmp(s2,s1)>0)D)if(strcmp(s1,s2)>0)16.下面程序段的功能是将字符串16.下面程序段的功能是将字符串s中所有的字符c删除。请选择填空。#include<stdio.h>main(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!=\0';i++)if(s[i]!=C')A)s[j++]=s[i]s[j]=\0';puts(s);}A)s[j++]=s[i]B)s[++j]=s[i]C)s[j]=s[i];j++D)s[j]=s[i]A)gets(a,b);17.有两个字符型数组a,b,则以下正确的输入格式是()。A)gets(a,b);B)scanf(%s%s”,a,b);C)scanf(%s%s”,&a,&b);D)gets(a"),gets(b");C)scanf(%s%s”,&a,&b);D)gets(a"),gets(b");18.对两个数组a和b18.对两个数组a和b进行如下初始化,chara[]={A','B','C','D','E','F'};charb[]="ABCDEF”;则以下叙述正确的是(a与b数组完全相同C)a与b中都存放字符串a与b数组长度相同D)b数组比a数组长度长(二)填空题1.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其它元素不变。请填空。#include<stdio.h>main(){chara[]=labchmfye”,t;inti,j;for(i=0;i<7;i+=2)for(j=i+2;j<9;①)if(②){t=a[i];a[i]=a[j];a[j]=t;j++;}puts(a);printf("\n”);}.下面程序以每行4个数据的形式输出a数组,请填空。#defineN20main(){inta[N],i;TOC\o"1-5"\h\zfor(i=0;i<N;i++)scanf("%d",①);for(i=0;i<N;i++){if(②)③printf("%3d”,a[i]);}printf("\n");}.下面程序是分别求出矩阵a的两条对角线上的元素之和。请填空。main(){inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)sum1=sum1+a[i][j];for(i=0;i<3;i++)for(①;②;j--)if((i+j)==2)sum2=sum2+a[i][j];printf("sum1=%d,sum2=%d\n",sum1,sum2);}.下面程序功能是检查一个二维数组是否对称(即对所有ij都有a[i][j]=a[j][i])。请填空。main(){inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};inti,j,found=0;for(j=0;j<4;j++)for(①;i<4;i++)if(a皿i])!=a[i][j]{②;break;}

if(found)printf();noif(found)printf();elseprintf("yes");}.下面的程序段将输出computer,请填空。charc[]=It'sacomputer";for(i=0;①;i++){②;printf(%c",c[j]);}.下面的程序功能是在三个字符串中找出最小的。请填空。#include<stdio.h>#include<string.h>main(){chars[20],str[3][20];inti;for(i=0;i<3;i++)gets(str[i]);TOC\o"1-5"\h\zstrcpy(s,①);if(strcmp(str[2],s)<0)strcpy(s,str[2]);printf("%s\n",②);}.若有定义inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是①,a[2][1]得到的初值是②。.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for(k=s=i=0;i<10;i++)TOC\o"1-5"\h\z{if(a[i]%2!=0)①;s+=②;k++;}if(k!=0){ave=(float)s/k;printf(%d,%f\n”,k,ave);}}.下面程序段的运行结果是()。charx[]="theteacher”;i=0;while(x[++i]!=\0')if(x[i-1]==t'')printf(%c",x[i]);.下面程序段是输出两个字符串中对应字符相等的字符。请填空。charx[]="programming";chary[]="Fortran";inti=0;);while(x[i]!=\0'&&y[i]!=\0'));{if(x[i]==y[i])printf(%c"elsei++;}

四、C语言函数与编译预处理练习(一)选择题TOC\o"1-5"\h\z有以下函数调用语句,其实参数的个数是()。fun(a+b,(x,y),fun(n+k,d,(a,b)));A)3B)4C)5D)6C语言规定,程序中各函数之间()。A)既允许直接递归调用又允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用但不允许间接递归调用D)不允许直接递归调用但允许间接递归调用TOC\o"1-5"\h\zC语言中,函数的隐含存储类别是()。A)autoB)staticC)externD)无存储类别.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()。A)externB)registerC)autoD)static.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()。A)地址传递B)单向值传递C)由实参传递给形参,再由形参传回给实参C)由实参传递给形参,再由形参传回给实参D)由用户指定传递方式.C语言允许函数类型缺省定义,此时该函数返回值隐含的类型是(A)float型B)int型C)long型D)double型.C语言规定,函数返回值的类型是由()。A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定.以下符合C语言规定的正确描述是()。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套.如用数组名作为函数调用的实参,传递给形参的是()。A)数组的首地址B)数组第一个元素的值C)数组中全部元素的彳tD)数组元素的个数.以下不正确的说法是()。A)在不同函数中可以使用相同名的变量B)形式参数是局部变量C)在函数内部定义的变量只在本函数范围内有效D)在函数内的复合语句中定义的变量在本函数范围内有效.C语言函数进行值传递时的正确说法是()。A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参占用一个存储单元C)只有当实参和与其对应的形参同名时才占用存储单元D)形参是虚拟的,不占用存储单元.以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空。sub(intk,intn){inta1,a2;a2=①;a1=k-②;if((k%3==0&&a2==5)||(k%3==0&&a1==5)){printf("%d,",k);n++;returnn;}elsereturn-1;}main(){intn=0,k,m;for(k=10;k<=99;k++){m=sub(k,n);

if(m!=-1)n=m;}printf(“\nn=%d",n);}①A)k*10B)k%10C)k/10D)k*10%10②A)a2*10B)a2C)a2/10D)a2%10.若使用一维数组名作函数实参,则以下正确的说法是()。A)必须在主调函数中说明实参数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组名与形参数名必须相同.如果在一个函数的复合语句中定义了一个变量,则该变量()。A)只在该复合语句中有效B)在该函数中有效A)只在该复合语句中有效B)在该函数中有效C)在本程序范围内有效D)为非法变量.以下叙述中不正确的是(A)预处理命令行都必须以A)预处理命令行都必须以#号开始B)在程序中凡是以#号开始的语句行都是预处理命令行C)C程序在执行过程中对预处理命令行进行处理D)以下是正确的宏定义#defineIBM_PC.以下叙述中正确的是(

A)在程序的一行上可以出现多个有效的预处理命令行B)使用带参数的宏时,参数的类型应与宏定义时的一致C)宏替换不占用运行时间,只占编译时间045)°B)宏名无类型D)045)°B)宏名无类型D)宏名必须用大写字母表示)°B)在程序连接时进行的#defineCR.以下有关宏替换的叙述不正确的是(A)宏替换不占用运行时间C)宏替换只是字符替换.C语言编译系统对宏命令的处理是(A)在程序运行时进行的C)和C程序中的其它语句同时进行编译的D)在对源程序中其它成分正式编译之前进行的.以下程序的运行结果是()。#defineADD(x)x+xmain(){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf("sum=%d”,sum);}A)sum=9B)sum=10C)sum=12D)sum=18二、填空题以下程序的功能是根据输入的“y"(Y”)与n”("N”),在屏幕上分别显示出“ThisisYES.与“ThisisNO.请填空。#include<stdio.h>voidYesNo(charch){switch(ch){casey':caseY':printf(\nThisisYES.\n");;工,casen:caseN':printf(\nThisisNO.\n");;}}main(){charch;printf(\nEnterachary','Y'or'n','N':\n");ch=_printf(ch:%c”,ch);YesNo(ch);}五、指针练习(一)选择题.已有定义intk=2;int*ptr1,*ptr2;且ptri和ptr2均已指向变量k,下面不能正确执TOC\o"1-5"\h\z行的赋值语句是()。'A)k=*ptr1+*ptr2;B)ptr2=k;C)ptr1=ptr2D)k=*ptr1*(*ptr2);.变量的指针,其含义是指该变量的()。A)值B)地址C)名D)一个标志.如有定义inta=5;下面对①,②两个语句的正确解释是()。①int*p=&a;②*p=a;A)语句①和②中的含义相同,都表示给指针变量p赋值B)①和②语句的执行结果,都是把变量a的地址值赋给指针变量pC)①在对p进行说明的同时进行初始化,使p指向a②将变量a的值赋给指针变量pD)①在对p进行说明的同时进行初始化,使p指向a②将变量a的值赋于*p.若已定义chars[10];则在下面表达式中不表示s[1]的地址的是()。A)s+1B)s++C)&s[0]+1D)&s[1].若有以下定义,则对a数组元素的正确引用是()。inta[5],*p=a;

A)*&a[5]B)a+2C)*(p+5)D)*(a+2)A)*&a[5]B)a+2C)*(p+5)D)*(a+2).若有以下定义,则对a数组元素地址的正确引用是()。inta[5],*p=a;A)p+5B)*a+1C)&a+1D)&a[0].设有如下函数定义intf(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}TOC\o"1-5"\h\z如果在主程序中用下面的语句调用上述函数,则输出结果为()。printf("%d\n",f("goodbay!"));A)3B)6C)8D)0.执行以下程序后,y的值是()。main(){inta[尸{2,4,6,8,10};inty=1,x,*p;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);}A)17B)18C)19D)20.下面各语句行中,能正确进行字符串赋值操作的语句是()。A)charst[4][5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};char*s;s="ABCDE”;char*s;scanf("%s",s);.请读程序段charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));以上程序段的输出结果是()。A)68B)0C)字符'D'的地址D)不确定的值.以下与int*q[5];等价的定义语句是()。A)intq[5];B)int*qC)int*(q[5]);D)int(*q)[5];.若有以下定义intx[4][3]={123,4,5,6,7,8,9,10,11,12};int(*p)[3]=x;则能够正确表示数组元素x[1][2]的表达式是(

A)*((*p+1)[2])B)(*p+1)+2A)*((*p+1)[2])B)(*p+1)+2C)*(*(p+5))D)*(*(p+1)+2).以下不正确的叙述是()。A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定B)C语言允许main函数带形参,形参名只能是argc和argvC)当main函数带有形参时,传给形参的值只能从命令行中得到D)若有说明main(intargc,char*argv),则形参argc的值必须大于1.语句int(*ptr)();的含义是()。A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是()。A)(*p)max(a,b);B)*pmax(a,b);C)(*p)(a,b);D)*p(a,b);.以下程序的功能是从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。请选择填空。#include<stdio.h>#include<string.h>main(){charstring[100],*p,*q,*r,c;gets(string);for(p=string;*p;p++){for(q=r=p;*q;q++)if(①)r=q;if(②){c=*r;*r=*p;*p=c;}}for(p=string;*p;p++){for(q=③;*p==*q;q++)strcpy(p,q);}printf(“result;%s\n",string);}①A)*r>*qB)*r>*pC)r>qD)r>p②A)r==qB)r!=qC)p!=qD)r!=p③A)p++B)pC)p-1D)p+1.下面程序的功能是将字符串s中的内容按逆序输出,但不改变串中的内容,请选择填空。#include<stdio.h>main()

{chars[10]=hello!{chars[10]=hello!inverp(s);}inverp(char*a){if(①)return0;inverp(a+1);printf(“%c”,②);}A)*a!='\0'B)*a!=NULLC)!*aD)!a*==0A)*(a-1)B)*aC)*(a+1)D)*(a--).下面程序的运行结果是()。main(){intx[5]={2,4,6,8,10},*p,**pp;p=x;pp=&p;printf("%d",*(p++));printf("%3d\n",**pp);}A)44B)24C)22D)46(二)、填空题.在C程序中,只能给指针变量赋①值和②值。.在C程序中,可以通过三种运算来移动指针,它们是①、②

六、结构体、共用体及位运算(一)选择题.当说明一个结构体变量时系统分配给它的内存是()。A)各成员所需内存量的总和C)成员中占内存量最大者所需的容量.以下结构体类型变量的定义中不正确的是(A)#defineSTUDENTstructstudentSTUDENT{intnum;floatage;}std1;C)struct{intnum;floatage;B)结构中第一个成员所需的内存量D)B)结构中第一个成员所需的内存量D)结构中最后一个成员所需内存量)°B)structstudent{intnum;floatage;}std1;D)struct{intnum;floatage;}student;structstudentstd1;.设有以下说明语句,则下面的叙述不正确的是structstu{inta;floatb;}stutype;struct是结构体类型的关键字structstu是用户定义的结构体类struct是结构体类型的关键字structstu是用户定义的结构体类stutype是用户定义的结构体类型名D)a和b都是结构体成员名.C语言结构体类型变量在程序执行期间(A)所有成员一直驻留在内存中B)只有一个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中.以下对结构体变量stu1中成员age的非法引用是structstudent{intage;intnum;}stu1,*p;C)p—C)p—>ageD)(*p).ageA)stu1.ageB)student.age.当说明一个共用体变量时系统分配给它的内存是(A)各成员所需内存量的总和B)结构中第一个成员所需的内存量C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量.以下对C语言中共用体类型数据的叙述正确的是()。A)可以对共有体变量名直接赋值一个共用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论