手机版
您的当前位置: 老骥秘书网 > 范文大全 > 公文范文 > 2024!(a%i)(6篇)

2024!(a%i)(6篇)

来源:公文范文 时间:2024-08-24 10:48:01 推荐访问:

篇一:!(a%i)篇二:!(a%i)

  

  一、选择题(每题

  1分,共

  20分)

  1.

  C语言程序的三种基本结构是顺序结构、选择结构和

  结构。

  A、循环

  B、递归

  C、转移

  D、嵌套

  2.

  下列标识符中,合法的是_______。

  A)unsigned

  B)5ab

  C)INT#

  D)_num23.

  若floatx;x=10/4;

  x的值是。A、B、2.C、D、4.

  表达式

  !x等价于。A、x==B、x==1C、x!=D、x!=15.

  算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。A、算术运算、赋值运算、关系运算

  B、关系运算、赋值运算、算术运算

  C、算术运算、关系运算、赋值运算

  D、关系运算、算术运算、赋值运算

  6.

  能将高级语言编写的源程序转换为目标程序的是。A、链接程序

  B、解释程序

  C、编译程序

  D、编辑程序

  7.

  下列语句定义pf为指向float类型变量f的指针,是正确的。

  A、float

  f,*pf=f;

  B、float

  f,*pf=&f;

  C、float

  *pf=&f,f;

  D、float

  f,pf=f;

  8.

  一个C程序的执行是从。A、本程序的main函数开始,到main函数结束

  B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

  C、本程序的main函数开始,到本程序文件的最后一个函数结束

  D、本程序文件的第一个函数开始,到本程序main函数结束

  9.

  能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。

  A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

  B、(x>=1)||(x<=10)||(x>=200)||(x<=210)

  C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

  D、(x>=1)||(x<=10)&&(x>=200)||(x<=210)

  10.

  对两个数组a和b进行如下初始化

  chara[]=“ABCDEF”;

  charb[]={‘A’,’B’,’C’,’D’,’E’,’F’};

  则以下叙述正确的是。A、a和b数组完全相同

  B、a和b长度相同

  C、a和b中都存放字符串

  D、a数组比b数组长度长

  11.

  是不正确的字符常量。

  A、"\n"

  B、"1"

  C、"a"

  D、"\101"

  12.

  若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和

  等价。

  A、k=(a>b)1:0;

  B、k=a>b;

  C、k=a<=b;

  D、a<=b

  0:1;

  13.

  设变量定义为“intx,*p=&x;”,则&*p相当于。A、p

  B、*p

  C、x

  D、*&x

  14.

  有两个字符数组a、b,则以下正确的输入语句是。A)gets(a,b);

  B)

  scanf(“%s%s”,a,b);

  C)scanf(“%s%s”,&a,&b);

  D)

  gets(“a”),gets(“b”);

  15.

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

  B、单向值传递

  C、由实参传给形参,再由形参传回给实参

  D、由用户指定传递方式

  16.

  C语言规定,函数返回值的类型是由。A、return语句中的表达式类型所决定

  B、调用该函数时的主调函数类型所决定

  C、调用该函数时系统临时决定

  D、在定义该函数时所指定的函数类型所决定

  17.

  若已定义

  chars[10];则在下面表达式中不表示s[1]的地址的是。A、s+1B、s++

  C、&s[0]+1D、&s[1]

  18.

  下列关于switch语句和break语句的说法中,正确的是。A、break语句是switch语句中的一部分。

  B、在switch语句中可以根据需要使用或不使用break语句。

  C、在switch语句中必须使用break语句。

  D、以上三个结论中有两个是正确的。

  19.

  以下对二维数组a的正确说明是。A、inta[][3]={0};

  B、inta[3][]={{1},{2},{3}};

  C、inta[1][3]={1,2,3,4};

  D、inta[2][3]={{1,2},{3,4},{5,6}};

  20.

  以下结构体类型和变量的定义,正确的是。A、structstudent

  B、struct

  {intnumber,

  {intnumber,

  charname[20],

  charname[20],

  }s;

  };s;

  C、structstudent

  D、structstudent

  {intnumber;

  {intnumber;

  charname[20];

  charname[20];

  }s;

  };s;

  二、填空题(每空

  2分,共

  20分)

  1.

  写出语句

  printf("%d,%o,%x",0x12,12,012);的输出结果

  ①。2.

  C语言运算符中,优先级最低的是

  ②。3.

  intx;floaty;且执行scanf(“%3d%f”,&x,&y);语句时,从第一列开始输入数据12345是

  ③y的值是

  ④。4.

  定义inti=1;执行while(i++<5)后i的值为

  ⑤。5.

  执行下列语句chars[4]=”DEF”,*p;

  p=s;后,*(p+3)的值是

  ⑥。6.

  构成数组的各个元素必须具有相同的⑦。5.在C语言中,二维数组元素在内存中的存放顺序是

  ⑧。7.

  在C语言中,逻辑“假”值为

  ⑨。8.

  字符串”ab\034\\\x79”的长度为

  ⑩。678,则x的值

  三、读程序,写结果(每题4分,共20分)

  1.写出下列程序段的输出结果。

  #include<>

  main()

  {int

  k;

  for(k=10;k!=0;k--);

  printf("%d",k);

  }

  3.写出下列程序的输出结果。

  #include<>

  main()

  {

  struct

  st{

  intx,y;

  }a[4]={{10,20},{30,40},{50,60},{70,80}};

  structst

  *p=a;

  printf("%d,",(*a).x);

  printf("%d,",a[2].y);

  printf("%d\n",(*(p+3)).x);

  }

  5.写出下列程序的输出结果。

  #include""

  void

  main()

  {inta[10]={1,2,3,-4,5,6,7,-8,9,10},s=0;

  for(inti=0;i<10;i++)

  {if(a[i]<0)

  break;

  s+=a[i];

  }

  printf("%d",s);

  }

  四、程序填空题(每空

  2分,共

  20分)

  1.下列程序,求数组中主对角线元素之和。

  main()

  {inta[3][3],s=0;

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

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

  scanf("%d",

  ①);

  2.写出下列程序的输出结果。

  #include<>

  void

  sub(intx,inty,int*z)

  {*z=y-x;}

  main()

  {inta,b,c;

  sub(7,3,&a);

  sub(2,a,&b);

  sub(a,b,&c);

  printf("%d,%d,%d\n",a,b,c);

  }

  4.写出下列程序的输出结果。

  #include""

  voidmain()

  {

  intk,j,a[5][5],b[5];

  for(k=0;k<5;k++)

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

  a[k][j]=k*5+j+1;

  for(k=0;k<5;k++)

  {

  b[k]=0;

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

  b[k]+=a[k][j];

  }

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

  printf("%4d",b[k]);

  }

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

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

  if(②)

  s+=

  ③;

  printf("s=%d\n",s);

  }

  2.下面的程序的功能是:利用指针统计一个字符串中,字母、空格、数字、及其它字符的个数,请填空。

  #include<>

  voidmain()

  {intalpha,space,digit,other;

  char*p,s[80];

  alpha=space=digit=other=0;

  gets(s);

  for(p=s;*p!="\0";p++)

  if(④)alpha++;

  elseif(⑤)space++;

  elseif(⑥)digit++;

  elseother++;

  printf("alpha:%dspace:%ddigit:%d

  other:%d\n",alpha,space,digit,other);

  }

  输入10个数,按从大到小的顺序排序输出。

  #include<>

  voidmain()

  {inti,j,a[10],temp;

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

  ⑦

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

  for(⑧

  ;

  ⑨

  ;j++)

  if(⑩)

  {temp=a[j];

  a[j]=a[j+1];

  a[j+1]=temp;

  }

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

  printf("%d",a[i]);

  }

  五、编程题

  (每题10分,共

  20分)

  1.从键盘输入10个整数,求所有素数的和。要求判断整数是否为素数的功能用函数实现。

  2.a为float型的一维数组,输入n个实数,去掉一个最大数,去掉一个最小数,求其他n-2个数的平均值(输出时要求保留一位小数.)

  如输入

  /*

  n=5*/

  则输出++的平均值:。

  参考答案

  一、选择题(每小题

  2分,共

  20分)

  1-5ADBAC

  6-1CBACD11-15CCABB

  16-20DBBAC

  填空题(每小题

  2分,共

  20分)

  1、18,14,a

  2、,3、1234、5、6、’\0’

  7、数据类型

  8、按行

  9、10、11、三、读程序,写结果(每小题题4分,共20分)1、2、-4,-6,-23、10,60,74、154655、程序填空题(每空

  2分,共

  20分)

  1、&a[i][j]

  2、i==j

  3、a[i][j]

  4、(*p>="a"&&*p<="z")||(*p>="A"&&*p<="Z")

  5、*p==""

  6、(*p>="0"&&*p<="9")

  7、scanf("%d",&a[i]);

  8、j=j<9-i

  10、a[j]

  五、编程题

  (每题10分,共

  20分)

  #include<>

  #include<>

  Voidmain(void)

  {

  Inta[10],i,sum=0;

  Intf(intx);

  }

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

  {Scanf(“%d”,&a[i]);

  if(f(a[i])

  sum=sum+a[i];

  }

  Printf(“sum=%d”,sum);

  }

  Intfunctionf(intx)

  {

  IntI,k=1;

  For(i=2;i<=sqrt(x);i++)

  If(x%i==0)

  {k=0;

  Break;

  }

  Returnk

  #include<>

  Voidmain(void)

  {

  floata[100],sum=0,avg,max,min;int

  I,n;

  scanf(“%d”,&n);

  for(i=0;i

  Scanf(“%f”,&a[i]);

  max=a[0];

  min=a[0];

  sum=a[0];

  for(i=1;i

  sum=sum+a[i];

  一、填空题

  if(a[i]>max)max=a[i];

  if(a[i]

  }

  Avg=(sum-max-min)/n-2;

  Printf(“avg=%.1f”,ang);

  }

  1、C语言中基本的数据类型有:__________、__________、__________。

  2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。3、整数-35在机内的补码表示为__________。

  4、执行下列语句inta=8;a+=a-=a*a;后,a的值是__________。

  5、有如下语句:charA[]={”Iamastudent”};该字符串的长度是__________,A[3]=__________。

  6、符号”a”和’a’的区别是__________。

  7、所谓“指针”就是__________。

  “&”运算符的作用是__________。

  “*”运算符的作用是__________。

  8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。

  二、选择题

  1、设整型变量a为5,使b不为2的表达式是()。

  A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>32:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

  A.缩排位置相同的ifB.在其之前未配对的if

  C.在其之前未配对的最近的if?

  D.同一行上的if3、以下程序的输出结果是()。

  intx=10,y=10;

  printf(“%d%d\n”,x--,--y);A.1010B.99C.910D.104、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()。

  A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i

  5、选出下列标识符中不是合法的标识符的是()。

  A.hot_doB.cat1C._priD.2ab

  6、以下程序的输出结果是()。

  inta=5;floatx=;a*=x*(‘E’-‘A’);

  printf(“%f\n”,(float)a);

  A.

  B.C.

  D.627、设有说明double(*p1)[N];其中标识符p1是()。

  A.N个指向double型变量的指针。

  B.指向N个double型变量的函数指针。

  C.一个指向由N个double型元素组成的一维数组的指针。

  D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。

  8、在C程序中有如下语句:char*func(intx,inty);它是()。

  A.对函数func的定义。?

  B.对函数func的调用。

  C.对函数func的原型说明。

  D.不合法的。

  9、以下程序的输出结果是()。

  charstr[15]=”hello!”;

  printf(“%d\n”,strlen(str));

  A.15B.14C.7D.610、分析以下程序的输出结果是()。

  main(){inta=5,b=-1,c;c=adds(a,b);printf(“%d”,c);

  c=adds(a,b);printf(“%d\n”,c);}

  intadds(intx,inty){staticintm=0,n=3;n*=++m;m=n%x+y++;return(m);}A.2,3B.2,2C.3,2D.2,411、下列描述中不正确的是()。

  A.字符型数组中可能存放字符串。

  B.可以对字符型数组进行整体输入、输出。

  C.可以对整型数组进行整体输入、输出。

  D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

  12、以下程序的输出结果是()。

  #definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf(“%d\n”,c);

  }A.9B.6C.36D.113、设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。

  A.1B.0C.4D.314、定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的输出结果是()。

  A.159B.147C.357D.3615、以下对二维数组a进行正确初始化的是()

  A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};

  16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。

  intx;scanf("%d",&x);if(x++>5)printf("%d",x);elseprintf("%d\n",x--);A.7和5B.6和3C.7和4D.6和417、设有如下定义:char*aa[2]={"abcd","ABCD"};则以下说法中正确的是()。

  A)aa数组成元素的值分别是"abcd"和ABCD"B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

  C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

  D)aa数组的两个元素中各自存放了字符"a"和"A"的地址

  18、下列程序的输出结果是()。

  char*p1="abcd",*p2="ABCD",str[50]="xyz";

  strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);A.xyabcAB

  B.abcABz

  C.ABabcz

  D.xycdBCD

  19、下列程序的输出结果是()。

  inta[5]={2,4,6,8,10},*P,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);A.44B.22C.24D.4620、不能把字符串:Hello!赋给数组b的语句是()。

  A.charb[10]={"H","e","l","l","o","!"};

  B.charb[10];b="Hello!";C.charb[10];strcpy(b,"Hello!");

  D.charb[10]="Hello!";

  三、读程序题

  1、floatf=;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是__________。

  2、intx=6,y=7;

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

  printf(“%d\n”,++y);

  程序的输出结果是__________。

  3、a=3;

  a+=(a<1)a:1;

  printf(“%d”,a);

  结果是__________。

  4、for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为__________。

  5、inty=1,x,*p,a[]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);程序的输出结果y的值是__________。

  四、程序填空题

  1、从键盘上输入10个数,求其平均值。

  main()

  {inti;floatf,sum;for(i=1,sum=;i<11;i++)

  {__________;__________;}printf(“average=%f\n”,sum/10);}

  2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

  #include

  main(){FILE*fp;charc;fp=__________;do{c=getchar();fputs(c,fp);}while(c!=EOF);__________}

  3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.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);}

  五、编程题

  1.三个整数a、b、c,由键盘输入,输出其中最大的一个数。

  2.输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)

  3.请编一个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。

  4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

  参考答案

  一、填空题

  (1)整型、实型、字符型。

  (2)int,2,-32768~+32767(3)101(4)-112(5)14,’m’

  (6)”a”是字符串常量,而’a’是字符常量。

  (7)存放地址值的变量或常量,或者答地址。

  (8)取运算对象的地址。

  取指针变量所指的内容。

  (8)a=1,b=3,c=2二、选择题

  1、C2、C3、D4、B5、D

  6、A7、C8、C9、D10、A

  11、C12、C13、D14、C15、B

  16、C17、D18、D19、C20、B

  三、阅读程序题

  (1),,(2)6,8(3)4(4)22(5)1四、程序填空题

  1、scanf(“%f”,&f);sum+=f;

  2、fopen(“myfile”,w)fclose(fp);

  3、x>=x<=amin

  五、编程题

  1、main(){inta,b,c;printf(“请输入三个整数:”);

  scanf(“%d,%d,%d”,&a,&b,&c);

  if(a

  elseif(aelseprintf(“max=%d\n”,a);}

  2、#include””

  main()

  {intI,n;for(n=0,I=1900;I<=2000;I++){if(I%4==0&&I0!=0||I@0==0){printf(“%d”,I);n++;}

  if(n%3==0)printf(“\n”);}}}

  3、#include””

  intfun(inta){intI;if(a==2)return1;I=2;while((a%I)!=0&&I<=sqrt((float)a))I++;if(a%I==0){printf(“%disnotaprime!”,a);

  return0;}printf(“%disaprime!”,a);

  return1;}main(){intx;printf(“\npleaseenteranumber:”);

  scanf(“%d”,&x);

  printf(“%d\n”,fun(x));}

  4、#include""#defineN3structstudent{longstu_num;charsex;charname[15];intscore[4];floataverage;};main(){intI,j,index;floatsum,max;structstudentstuarr[N];for(I=0;Imax){max=stuarr[I].average;index=I;}

  printf("总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n",stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);}

  一、单选题

  1、能将高级语言源程序转换成目标程序的是(C)。

  编译程序的基本功能是把源程序翻译成目标程序

  A)调试程序

  C)编译程序

  2、设有以下定义:intx=10,y=3,z;则语句:printf(“%d”,z=(x%y,x/y));的结果是(D)。

  A)1B)0C)4D)33、若已定义x和y为整型,则表达式:x=1,y=x+3/2的值是(B)。P56A)1C)

  4、C语言中

  (B)。P115A)不能使用

  do-while语句构成循环。

  B)do-while语句,当

  while语句中的表达式值为零时结束循环。

  C)do-while语句,当

  while语句中的表达式值为非零时结束循环

  D)do-while语句必须用

  break语句才能退出循环

  5、设有定义

  inta=3;,则执行语句

  a+=a-=a*a后,变量

  a的值是(C).P64(a-a*a

  a=3-3*3a=-6a=a+a

  a=-6+(-6)

  a=-12)

  A)3B)C)-126、以下程序的输出结果是

  (C)。p93#include<>

  main()

  {inta,b,d=241;

  a=d/100%9;

  b=(-1)&&(-1);

  printf("%d,%d\n",a,b);

  }

  A)21B)1,-1C)2,1D)2-17、以下程序的输出结果是B)解释程序

  (D)。

  D)编辑程序

  #include<>

  #include<>

  main()

  {charstr[12]={"s","t","r","i","n","g"};

  printf("%d\n",strlen(str));

  }求字符串的长度,strlen()的参数必须是char*

  A)12B)78、以下的B)

  for2循环(A)。

  D)

  for(x=0,y=0;(y!=123)&&(x<4);x++);

  A)执行4次

  B)是无限循环

  C)执行3次

  D)循环次数不定

  9、以下程序段的输出结果是(A)

  chara[]=”Basic”;

  char*p=a;

  printf(“%s”,p);

  A)BasicB)B10、以下说法中正确的是(C)。

  A)C

  语言程序总是从第一个定义的B)在C语言程序中,要调用的函数必须在

  main()函数中定义

  C)C语言程序总是从

  main()函数开始执行

  D)D)C语言程序中的main()函数必须放在程序的开始部分

  11、下述对

  C语言字符数组的描述中错误C)11asicC)

  的是(C)

  A)字符数组可以存放字符串

  B)字符数组中的字符串可以整体输入、输出

  C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

  D)不可以用关系运算符对字符数组中的字符串进行比较

  12、C语言中最简单的数据类型包括(B)

  A)整型、实型、逻辑型

  B)整型、实型、字符型

  C)整型、字符型、逻辑型

  D)整型、实型、逻辑型、字符型

  13、阅读程序:

  #include<>

  #defineSUB(X,Y)(X)*Y

  main()

  {inta=3,b=4;

  printf("%d\n",SUB(a++,b++));

  }

  程序的输出结果是

  (B)

  A)15B)12C)16D)214、为表示关系x≥y≥z应使用C语言表达式(A)

  A)(x>=y)&&(y>=z)

  B)(x>=y)and(y>=z)

  C)

  (x>=y>=z)

  D)(x>=y)&(x>=y)

  15、如下程序的运行结果是(A)

  Main()

  {intn=0;

  while(n++<=1)

  printf(“%3d”,n);

  printf(“%3d\n”,n);

  }

  A)1B)3C)D)216、设有如下定义:

  char*aa[2]={“abcd”,”ABCD”};

  则以下说法中正确的是(D)

  A)aa数组元素的值分别是”abcd”和”ABCD”

  B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

  C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

  D)aa数组的两个元素中各自存放了字符’a’和’A’的地址。

  17、设有如下定义:

  structsk

  {inta;floatb;}data,*p;

  若有

  p=&data;,则对

  data中的a域的正确引用是(p->a)(A)

  A)(*p).a

  B)(*p).

  C)

  D)p->

  18、设有说明

  int(*ptr)[M];其中的标识符

  ptr是(C)

  A)M个指向整形变量的指针

  B)指向

  M个整形变量的函数指针

  C)一个指向具有

  M个整形元素的一维数组的指针

  D)具有

  M个指针元素的一维指针数组,每个元素都只能指向整形变量

  19、阅读程序,程序的输出结果为(C)。

  intx=3;

  do

  {printf(“%3d”,x-=2);

  }

  while(!(--x));

  A)1B)3C)1-220、设有10个数据进行冒泡排序,最少进

  structst{intn;structst*next;};

  staticstructsta[3]={{5,&a[1]},{7,&a[2]},{9,"\0"}},*p;

  D)死循环

  则表达式(B)的值是6。

  A)p++->nB)++(p->n)p=&a[0];

  C)(*p).n++行的比较次数为(C)。

  A)B)1C)D)121、设有语句

  chara=’\n’;,则变量

  a(A)。

  A)包含1个字符

  B)包含2个字符

  C)包含3个字符

  D)说明不合法

  22、若有定义:doublex,y;则表达式:x=1,y=x+3/2的值是(C)。

  A)1C)

  23、有以下程序:(注意:ch[0]在低字节,ch[1]在高字节。)

  #include<>

  unionpw{inti;charch[2];}a;

  main()

  {[0]=0;[1]=13;

  printf("%d\n",;

  }

  程序的输出结果是(C)。

  A)13B)1424、以下程序的输出结果是

  (B)。

  #include<>

  main()

  {charstr[12]={"a","b","c","d","f","g",’f’};

  printf("%d\n",strlen(str));}

  A)12B)725、设有以下语句:

  26、对于程序段

  floatf1(inta)

  {intb;……}

  main()

  {intm,n;

  m=f1(n);……

  }

  charf2(intx,inty)

  {inta;……}

  变量m,n的作用范围是(B)

  (A)整个程序段B)2(B)main函数

  D)

  (C)main函数和f2函数

  (D)mian函数和f1函数

  27、若p1、p2都是指向整型的指针,p1已经指向数量x,要使p2也指向x,正确的是(A)

  (A)p2=p1;

  (B)p2=**p1;

  (C)p2=&p1;

  (D)p2=*p1;

  28、算术运算符,C)3328赋值运算符和关系运算符D)32的运算优先级按从高到低依次为(B)

  (A)算术运算、赋值运算、关系运算

  (B)算术运算、关系运算、赋值运算

  (C)关系运算、赋值运算、算术运算

  (D)关系运算、算术运算、赋值运算

  29、C语言中,C)11运算对象必须是整型数的运D)6算符是(A)

  A)%

  B)/C)

  %printf("%d\n",d);和

  /D)*

  }

  A)4B)6C)30、若数组定义为inta[10];则下列哪个表达式是错误的(A)

  (A)*a

  (B)a

  (C)&a

  (D)++a

  31、表达式10%2值是(A)

  (A)(B)1(C)5(D)

  32、设有说明

  int(*ptr)[M];其中的标识符

  ptr是(C)

  A)M个指向整形变量的指针

  B)指向

  M个整形变量的函数指针

  C)一个指向具有

  M个整形元素的一维数组的指针

  D)具有

  M个指针元素的一维指针数组,每个元素都只能指向整形变量

  33、初始化一维数组a正确的语句是(C)

  (A)inta[10]=(0,0,0,0,0);

  (B)inta[10]={};

  (C)inta[]={10};

  (D)inta[10]={[10*1]};

  34、下列程序执行后输出的结果是

  (A)

  intd=1;

  fun(intp)

  {int

  d=5;

  d+=p++;

  printf("%d",d);

  }

  main()

  {int

  a=3;

  fun(a);

  d+=a++;

  35、函数调用语句“f((e1,e2),(e3,e4,e5))”中参数的个数是(B)

  (A)1(B)2(C)3(D)536、执行下列语句中,sum变量的值是(B)

  intI,sum=0;

  for(i=0;i<10;i++,sum+=i);

  (A)45(B)55(C)(D)编译错误

  37、以下c语言函数声明中,不正确的是(C)

  (A)voidfun(intx,inty);

  (B)fun(intx,inty);

  (C)intfun(intx,y);

  (D)char*fun(char*s);

  38、以下关于typedef的叙述中错误的是

  (A)

  (A)用typedef可以增加新的类型

  (B)用typedef可以定义各种类型名,但不能用来定义变量

  (C)用typedef只是将已有的类型用新的标识符来代表

  (D)使用typedef有利于程序的通用和移植

  39、假设指针p已经指向某个整型变量x,则*p相当于(C)

  (A)&x

  (B)&p

  (C)x

  (D)*x

  40、组成C语言程序的是(B)

  (A)过程

  (B)函数

  (C)子程序

  (D)主程序和子程序

  41、不用第三个变量,将变量a和b的值进

  行互换的操作是(B)

  (A)a+=b;b-=a;a-=b;

  (B)a+=b;b=a-b;a-=b;

  (C)b-=a;a-=b;a-=b;

  (D)b-=a;a=b-a;a+=b;

  42、对do-while语言错误的说法是(C)

  (A)可构成多重循环结构

  (B)组,int(*p)[4]的意是表示p是一个指针变量,它指向包含4个整形元素的一维数组

  数组指针(p28)。7、设有以下定义和语句:

  inta[3][2]={10,20,30,40,50,60},(*p)[2];

  p=a;

  则

  *(*(p+1)+1)的值为_____40_________。

  循环次数不可能为(C)循环次数可能为(D)先执行后判断

  43、函数调用时,若实参是一个数组名,则向形参传递的是(C)

  (A)数组的长度

  (B)数组的每一个元素的地址

  (C)数组的首地址(D)数组元素的值

  二、填空题

  1、下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值。

  intadd(intx,inty,

  int

  z)

  {

  z

  =x+y;}

  2、以下定义和语句,则使指针

  P指向值为

  17的数组元素的表达式是P+3。

  inta[10]={19,23,44,17,37,28,49,36},*p;

  p=a;

  3、设有定义:inti,j,k;则执行语句

  for(i=0,j=10;i<=j;i++,j--)k=i+j;后,k的值为。4、以下两条

  if语句可合并成一条

  if语句为。if(a<=b)x=1;

  else

  y=2;

  if(a>b)printf("y=%d\n",y);

  else

  printf("x=%d\n",x);

  5、C语言程序的函数之间可通过函数名返回数据外,还可通过

  函数指针返回

  数据(P261)定义全局变量,传递地址运算

  进行。

  6、int

  *p[4]的意义是

  它表示指针数8、若有以下定义和语句:

  struct{intx;chary;intz;}a,*b;

  b=&a;

  则

  sizeof(a)的值是__

  __,而

  sizeof(b)的值是。9、以下程序的输出是______4___。

  main()

  {inta[10]={19,23,44,17,37,28,49,36},*p;

  p=a;

  printf("%d\n",(p+=3)[3]);

  }

  10、若有以下说明和定义语句,则变量

  w在内存中所占的字节数是

  34,union

  aa

  {floatx,y;charc[6];};

  structst{unionaav;floatm[5];doubleave;}w;

  11、以下函数的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。

  exchange(int*x,int*y)

  {intt;

  t=*y;*y=

  *x

  ;*x=

  t

  ;}

  12、设有字符串STR,如下程序段用于确定其长度。

  {intnum=0;

  while(STR[num]!=’\0’)

  num++;

  return(num);

  }

  13、设单链表的结点含两个域:data是数据域,next是指针域,请填空。

  structlink{chardata;structlinkif(a<=b){x=1;

  printf(“x=%d\n”,x);}

  else{y=2;

  printf(“x=%d\n”,y)}

  *next

  }node;

  14、下面程序的输出是。main()

  {inta[]={1,2,3,4},*p=a,i;

  for(i=0;i<4;i++)a[i]=*(++p);

  printf(“%d”,a[2]);

  }

  15、如下程序的运行结果是

  123。Main()

  {intn=0;

  while(n++<=1)

  printf(“%3d”,n);

  printf(“%3d\n”,n);

  }

  16、设for(k=0;k<10;k++)++k;则该循环共执行

  次。

  17、结构化程序由三种基本控制结构组成,它们分别是

  顺序结构

  、选择结构

  和

  循环结构。18、初始化值是的双精度变量a的定义形式为

  doublea=。19、若有以下定义和语句:struct{intx;chary;floatz;}a,*b;b=&a;

  则

  sizeof(a)的值是__

  __,而

  sizeof(b)的值是。20、语句printf(“\%d%d”,123);

  执行后将输出:

  123285。21、如下程序段的输出是

  BCD。staticchara[]=”ABCD”;

  char*p=a;

  printf(“%s”,++p);

  22、如下函数用于求出一个2x4矩阵中的最

  小值。

  Max_value(arr)

  Intarr[][4];

  {intI,j,max=arr[0][0];

  for(I=0;

  I<2;I++)

  for(j=0;

  j<4;j++)

  if(arr[I][j]>max)max=a[I][j];

  return(max);

  }

  23、设单链表的结点含三个域:data1和data2是数据域,next是指针域,请填

  空。structlink{intdata1;chardata2;

  structlink*next

  ;}node;

  24、字符串″ABCD\t\\\123″的长度是。25、表达式a=1,a+1,a++的值是。27、被调函数在执行结束时,这个函数中定义的静态储存

  类型的变量不被释放。

  28、设inta[2][3]={{2},{3}};则数组元素a[1][0]

  的值为3。

  29、下列程序

  intx=3;

  do{printf(″%d″,--x);}

  while(!x);

  循环执行的次数是1。30、若函数定义为

  intdata()

  {floatx=;

  return(x);

  }

  则调用后函数返回的值是9。十四、判断题

  1、函数可以分为两个部分:函数说明部分和函数体。(√)

  2、函数的定义和函数的调用均可以嵌套。(×)

  3、在C语言中,当我们定义了数组inta[5];则数组元素的下标从1到5。(×)

  4、在C语言中,“A”占两个字节,而‘A’占一个字节。(√)

  5、程序中定义的整型变量的初值都为0。(×)

  6、若有说明intc;则while(c=getchar());是错误的C语句。(×)

  7、C语言中,共用体类型的变量在程序运行期间,所有成员都在内存中。

  (×)

  8、在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。(√)

  9、C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。(√)

  10、使用continue和break语句,都可以使得C程序的执行直接从循环中跳出。(×)

篇三:!(a%i)

  

  《C语言程序设计》试题一

  一、填空题

  1、C语言中基本的数据类型有:

  、、。

  2、C语言中普通整型变量的类型说明符为,在内存中占

  字节,有符号普通整型的数据范围是。3、整数-35在机内的补码表示为。4、执行下列语句inta=8;a+=a-=a*a;后,a的值是。5、有如下语句:charA[]={”Iamastudent”};

  该字符串的长度是,A[3]=。6、符号”a”和’a’的区别是。7、所谓“指针”就是。“&”运算符的作用是。“*”运算符的作用是。8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是。二、选择题

  1、设整型变量a为5,使b不为2的表达式是(C)。

  A.b=a/2B.b=6-(--a)

  C.b=a%2D.b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与(C)组成配对关系。

  A.缩排位置相同的if

  B.在其之前未配对的ifC.在其之前未配对的最近的if

  D.同一行上的if3、以下程序的输出结果是(D)。

  intx=10,y=10;

  printf(“%d

  %d\n”,x--,--y);

  A.101B.C.D.194、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址

  为(B)。

  A.P+i*2B.P+(i-1)*2C.P+(i-1)

  D.P+i5、选出下列标识符中不是合法的标识符的是(D)。

  A.hot_do

  B.cat1C._pri

  D.2ab6、以下程序的输出结果是(A)。

  inta=5;floatx=3.14;a*=x*(‘E’-‘A’);

  printf(“%f\n”,(float)a);

  A.62.00000B.62.80000C.63.00000D.627、设有说明double(*p1)[N];其中标识符p1是(C)。

  A.N个指向double型变量的指针。

  B.指向N个double型变量的函数指针。

  C.一个指向由N个double型元素组成的一维数组的指针。

  D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。

  8、在C程序中有如下语句:char*func(intx,inty);它是(C)。

  A.对函数func的定义。

  B.对函数func的调用。

  C.对函数func的原型说明。

  D.不合法的。

  9、以下程序的输出结果是(D)。

  charstr[15]=”hello!”;

  printf(“%d\n”,strlen(str));

  A.15B.14C.D.610、分析以下程序的输出结果是(A)。

  main(){inta=5,b=-1,c;

  c=adds(a,b);

  printf(“%d”,c);

  c=adds(a,b);

  printf(“%d\n”,c);

  }intadds(intx,inty){staticintm=0,n=3;

  n*=++m;

  m=n%x+y++;

  return(m);

  }

  A.2,3B.2,2C.3,2D.2,411、下列描述中不正确的是(C)。

  A.字符型数组中可能存放字符串。

  B.可以对字符型数组进行整体输入、输出。

  C.可以对整型数组进行整体输入、输出。

  D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

  12、以下程序的输出结果是(C)。

  #definef(x)

  x*xmain(){inta=6,b=2,c;

  c=f(a)/f(b);

  printf(“%d\n”,c);

  }A.B.6C.36D.1813、设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是(D)。

  A.1B.C.4D.314、定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i<3;i++)

  printf("%d

  ",x[i][2-i]);的输出结果是(C)。

  A.15B.147C.35D.36915、以下对二维数组a进行正确初始化的是(B)

  A.inta[2][3]={{1,2},{3,4},{5,6}};

  B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};

  D.inta[2][]={{1,2},{3,4}};16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是(C)。

  intx;scanf("%d",&x);if(x++>5)

  printf("%d",x);else

  printf("%d\n",x--);A.7和5B.6和3C.7和4D.6和417、设有如下定义:char*aa[2]={"abcd","ABCD"};则以下说法中正确的是(D)。

  A)aa数组成元素的值分别是"abcd"和ABCD"B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

  C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

  D)aa数组的两个元素中各自存放了字符"a"和"A"的地址

  18、下列程序的输出结果是()。

  char*p1="abcd",*p2="ABCD",str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);A.xyabcAB

  B.abcABz

  C.ABabcz

  D.xycdBCD19、下列程序的输出结果是(C)。

  inta[5]={2,4,6,8,10},*P,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);A.44B.2220、不能把字符串:Hello!赋给数组b的语句是(A.charb[10]={"H","e","l","l","o","!"};

  C.charb[10];strcpy(b,"Hello!");D.charb[10]="Hello!";三、读程序题

  1、floatf=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);

  则程序的输出结果是。2、intx=6,y=7;

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

  printf(“%d\n”,++y);

  程序的输出结果是。3、a=3;

  a+=(a<1)?a:1;

  printf(“%d”,a);

  结果是。4、for(a=1,b=1;a<=100;a++){if(b>=20)

  break;if(b%3==1)C.24D.46B)。

  b="Hello!";

  B.charb[10];

  {b+=3;continue;}b-=5;

  }程序的输出结果a的值为。5、inty=1,x,*p,a[]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);

  程序的输出结果y的值是。四、程序填空题

  1、从键盘上输入10个数,求其平均值。

  main()

  {inti;floatf,sum;for(i=1,sum=0.0;i<11;i++)

  {

  ;

  ;

  }printf(“average=%f\n”,sum/10);

  }2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

  #include

  main()

  {FILE*fp;charc;fp=fopen(“myfile”,w)

  ;do{c=getchar();fputs(c,fp);}while(c!=EOF);

  fclose(fp)}3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.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);}五、编程题

  1.三个整数a、b、c,由键盘输入,输出其中最大的一个数。

  2.输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)

  3.请编一个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。

  4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

  《C语言程序设计》试题一答案

  一、填空题

  (1)整型、实型、字符型。

  (2)int,2,-32768~+3276(3)1111111111011101(4)-112(5)14,’m’

  (6)”a”是字符串常量,而’a’是字符常量。

  (7)存放地址值的变量或常量,或者答地址。

  (8)取运算对象的地址。

  取指针变量所指的内容。

  二、选择题

  1、C

  2、C

  3、D

  4、B

  6、A

  7、C

  8、C

  9、D

  11、C

  12、C

  13、D

  14、C

  16、C

  17、D

  18、D

  19、C三、阅读程序题

  (1)3.141593,3.1416,3.142(2)6,4(4)22(5)19四、程序填空题

  1、scanf(“%f”,&f);

  sum+=f;

  2、fopen(“myfile”,w)

  fclose(fp);

  3、x>=0.x<=amin五、编程题

  1、main()

  {inta,b,c;printf(“请输入三个整数:”);

  scanf(“%d,%d,%d”,&a,&b,&c);

  if(a

  if(b

  printf(“max=%d\n”,c);

  else

  printf(“max=%d\n”,b);

  elseif(a

  printf(“max=%d\n”,c);

  else

  printf(“max=%d\n”,a);

  }2、#include”stdio.h”

  main()

  {intI,n;

  5、D

  10、A

  15、B

  20、B(3)(9)a=1,b=3,c=2for(n=0,I=1900;I<=2000;I++){if(I%4==0&&I%100!=0||I%400==0)

  {printf(“%d

  ”,I);

  n++;}if(n%3==0)

  printf(“\n”);

  }}

  }、#include”stdio.h”

  intfun(inta){intI;

  if(a==2)

  return1;

  I=2;

  while((a%I)!=0&&I<=sqrt((float)a))

  I++;

  if(a%I==0)

  {printf(“%disnotaprime!”,a);

  return0;

  printf(“%disaprime!”,a);

  return1;

  }main(){intx;

  printf(“\npleaseenteranumber:”);

  scanf(“%d”,&x);

  printf(“%d\n”,fun(x));

  }4、#include"stdio.h"#defineN3structstudent{longstu_num;

  charsex;

  charname[15];

  intscore[4];

  floataverage;

  };main(){intI,j,index;

  floatsum,max;

  structstudentstuarr[N];

  for(I=0;I

  {printf("pleaseinput%dstudentinformation:\n",I+1);

  scanf("%ld,%c,%s",&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I].name);3}

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

  scanf("%d",&stuarr[I].score[j]);

  }

  for(I=0;I

  {sum=0.0;

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

  sum+=stuarr[I].score[j];

  stuarr[I].average=sum/4.0;

  }max=stuarr[0].average;index=0;for(I=1;I

  if(stuarr[I].average>max)

  {max=stuarr[I].average;

  index=I;

  }

  printf("总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f\n",stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stuarr[index].average);

  制度说明

  制度是以执行力为保障的。“制度”之所以可以对个人行为起到约束的作用,是以有效的执行力为前提的,即有强制力保证其执行和实施,否则制度的约束力将无从实现,对人们的行为也将起不到任何的规范作用。只有通过执行的过程制度才成为现实的制度,就像是一把标尺,如果没有被用来划线、测量,它将无异于普通的木条或钢板,只能是可能性的标尺,而不是现实的标尺。制度亦并非单纯的规则条文,规则条文是死板的,静态的,而制度是对人们的行为发生作用的,动态的,而且是操作灵活,时常变化的。是执行力将规则条文由静态转变为了动态,赋予了其能动性,使其在执行中得以实现其约束作用,证明了自己的规范、调节能力,从而得以被人们遵守,才真正成为了制度。

篇四:!(a%i)

  

  数论基础

  1、求两个数的最大公约数

  原理:欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:

  定理:gcd(a,b)=gcd(b,amodb)

  证明:a可以表示成a=kb+r,则r=amodb

  假设d是a,b的一个公约数,则有

  d|a,d|b,而r=a-kb,因此d|r

  因此d是(b,amodb)的公约数

  假设d是(b,amodb)的公约数,则

  d|b,d|r,但是a=kb+r

  因此d也是(a,b)的公约数

  因此(a,b)和(b,amodb)的公约数是一样的,其最大公约数也必然相等,得证

  参考代码:

  intgcb(inta,intb){if(b==0)returna;

  else

  {

  returngcb(b,a%b);

  }2、求最小公倍数

  intlcm(inta,intb){

  intt,p;

  if(b>a){t=a;a=b;b=t;}

  p=a;

  while((p%b)!=0)p=p+a;

  returnp;

  }

  3、求素数

  1)小范围内判断一个数是否为质数

  intprimc(inta){

  inti,p;

  p=sqrt(a);

  for(i=2;i<=p;i++)

  if(a%i==0)break;

  if(i<=p)return0;

  else

  return1;

  }2)判断

  longint范围内的数是否为素数(包含求50000以内的素数表)

  intprc[50000],prim[50000];voidgetprimc(){

  longinti,j;

  for(i=2;i<50000;i++)

  prc[i]=1;

  prc[1]=0;

  i=2;

  while(i<50000)

  {

  if(prc[i]){

  j=i*2;

  while(j<50000){

  prc[j]=0;

  j=j+i;

  }

  }

  i++;

  }

  j=0;

  for(i=2;i<50000;i++)

  {

  if(prc[i]){j++;prim[j]=i;}

  }

  prim[0]=j;

  /*for(i=1;i<=j;i++)

  {

  printf("%ld",prim[i]);

  if(i%1000==0){printf("\n");getch();}

  }

  //7751519334603*/

  }intprimc2(longinta){

  longinti,p;

  getprimc();

  p=prim[0];

  printf("pnum=%ld\n",p);

  for(i=1;i

  if(prim[i]==a)return1;

  elseif((a%prim[i]==0)||(a

  }

篇五:!(a%i)

  

  南华大学C语言试题

  一、单项选择题(共20题,每小题2分,共40分)

  1、用高级程序设计语言编写的程序,________。

  A、计算机能直接执行

  B、具有良好的可读性和可移植性

  C、执行效率高,但可读性差

  D、依赖于具体机器,可移植性差

  2、若有定义语句:inta=10;doubleb=3.14;,则表达式‘a’+a+b值得类型是________。

  A、char

  B、int

  C、double

  D、float3、下面程序的输出是________?("□"表示一个空格)inta=3366;printf("|%-08d|",a);

  A、|-0003366|

  B、|00003366|

  C、|3366□□□□|

  D、输出格式非法

  4、运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为

  #include<stdio.h>

  main(){intv1=0,v2=0;charch;while((ch=getchar())!="#")switch(ch){case"a":case"h":default:v1++;case"o":v2++;}printf("%d,%d\n",v1,v2);}

  A、2,B、5,C、5,5/12D、2,55、有以下程序:#include<stdio.h>

  main(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;}printf("%d,",--x);}}程序的运行结果是______。

  A、7,4,2B、8,7,5,2C、9,7,6,4D、8,5,4,26、有如下函数定义;voidfunc(inta,int&b){a++;b++;}若执行代码段:intx=0,y=1;func(x,y);则变量x和y的值分别是________。

  A、0和1B、1和1C、0和2D、1和27、设有intx=11;则表达式(x++*1/3)的值是________。

  A、3B、4C、11/12D、128、设有如下定义:charaa[2][20]={"abcd","abcd"};则以下说法中错误的是__________.

  A、aa是个二维数组,可以存放2个19个字符以下的字符串

  B、aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD"

  C、aa[0]可以看作是一维数组名

  D、aa[0][0]可以看作是一维数组名

  9、下列内容是异常的含义的是________。

  A、程序编译或运行中发生的异常事件

  B、程序的语法错误

  C、程序编译错误

  D、程序预先定义好的异常事件

  10、字符串"\\\"abc\"\\"的长度是______。

  A、11B、C、5D、311、以下对一维数组a的正确说明是________。

  A、chara(10);

  B、inta[];

  C、intk=5,a[k];

  D、chara[3]={‘a’,’b’,’c’};

  12、以下程序的输出结果是________。

  #include<stdio.h>

  voidswap(int*a,int*b){int*t;t=a;a=b;b=t;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf(1%d%d,*p,*q);}

  A、23/12B、34C、35D、4513、若有定义:"int*p,x=0,*p,p=&x;",则语句"printf("%d\n",*p);"的输出结果是________。

  A、随机值

  B、C、x的地址

  D、P的地址

  14、设函数定义如下:floatf1(floata,floatb){return(a+b);}若有floatx=1.1,y=2.2;,则以下语句中正确的函数调用是________。

  A、printf("%f",f1();

  B、printf("%f",f1(&x,);

  C、printf("%f",f1(*x,*);

  D、printf("%f",f1(x,);

  15、有以下程序:#include<stdio.h>

  main(){charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从第1l列开始)123<回车>45678<回车>

  则输出结果是________。

  A、126B、1256C、127D、124516、执行循环语句后,i变量的值是________i=4;while(i--);printf("%d",i);

  A、/12B、-1C、1D、有错误

  17、下面定义结构变量的语句中错误的是________。

  A、structstudent{intnum;charname[20];}s;

  B、struct{intnum;charname[20];}s;

  C、structstudent{intnum;charname[20];};structstudents;

  D、structstudent{intnum;charname[20];};students;18、以下程序的输出结果是____________.#include<stdio.h>

  fun(intx,inty,intz){z=x*x+y*y;}voidmain(){inta=31;fun(5,2,a);printf("%d",a);}

  A、B、2C、31D、无定值

  19、以下能正确定义二维数组的是______。

  A、inta[][3]={1,2,3,4,5,6};

  B、inta[][3]={2*3};

  C、inta[][3]={};

  /12D、inta[2][3]={{1},{2},{3,4}};20、变量a所占的内存字节数是______。

  unionu{charst[4];inti;longl;};structA{intc;unionu;}a;

  A、4B、5C、6D、8二、判断题(共10题,每小题2分,共20分)

  ()1、宏定义的作用域为从源程序开始起到源程序结束止。

  ()2、下列条件:-3-3&&x<3。()()3、定义在main函数后的任何函数都需在main中进行函数声明

  ()4、以下程序段中,当i大于10或者s大于20时,循环结束。

  s=0;i=1;while(i<=10){s=s+i;if(s>20){break;}i++;}

  /12()5、若有说明语句char*p="itismine"则p变量中存放的是整个字符串

  ()6、fseek函数一般用于二进制文件。

  ()7、指针变量可以指向数组,但不允许指向数组元素。

  ()8、main()函数也是c语言的关键字()()9、在c语言中,字符数组可以存放字符串?()()10、文本文件和二进制文件都可以用eof作为文件结束标志。()三、编程题(共3题,共40分)

  1、请编一个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。a的值由主函数从键盘读入。

  (本题10分)

  2、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?

  (本题14分)

  3、有以下职工信息,使用结构体数组存储这些信息,从键盘输入5条记录,之后在屏幕上依次输出职工信息。

  structstuff{intstuffID;//职工编号

  floatbonus;//工资

  };【输入形式】5条职工信息,分行输入,数据间空格隔开

  【输出形式】分行输出5条职工信息和最低工资,每行数据均使用1个空格分隔

  【输入样例】

  10018540.5910026345.4510033500.6510044898.8610055345.80【输出样例】每行数据均使用一个空格分割,分五行输出

  10018540.5/1210026345.4510033500.6510044898.8610055345.80minBonus=3500.65(本题16分)

  /12参考答案

  一、单项选择题

  1、B【解析】用高级程序设计语言编写的程序具有良好的可读性和可移植性。

  2、C3、C4、C5、D【解析】本题考查for循环语句。x=8,for循环条件为真,8%3=2,不等于0,则if条件表达式为真,执行第一个输出语句,先输出x的值8,然后将x的值减1,此时x=7。然后执行continue语句结束本次循环。执行x--表示式,得x=6,for循环条件为真.6%3=0,则if条件表达式为假,执行第二个输出语句,先将x的值减1得x=5,然后输出x的值5。执行x--表示式,得x=4,for循环条件为真,4%3=1,不等于0,则if条件表达式为真,执行第一个输出语句,先输出x的值4,然后将x的值减1,此时x=3。然后执行continue语句结束本次循环。执行x--表示式,得x=2,for循环条件为真,2%3=2,不等于0,则if条件表达式为真,执行第一个输出语句,先输出x的值2,然后将x的值减1,此时x=1。执行x--表示式,得x=0,for循环条件为假,循环结束。

  6、C【解析】本题考查的知识点是:函数参数的传递方式。C的默认参数传递方式是传值,即将实参值的副本传递(拷贝)给被调用函数的形参。如果需要传地址,可通过传递指针、引用或数组类型的参数来实现。传值时,对形参的改变不会影响到实参;而传地址,则会同时改变实参。本题中形参a是普通参数,即传值调用,函数中对a增1不会影响到实参x的值;而形参b是引用,即传址调用,函数中对b增1同时也改变了实参y的值(y也增1了)。故最终结果是0和2,应该选择C。

  7、A【解析】当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增加1,所以表达式(x++*1/3)相当于(11*1/3),取整后为3。

  8、D9、A【解析】异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,它会引起程序的中断,影响程序正常运行。

  10、B11、D

  /1212、C【解析】本题主要考查的是函数参数的传递。在C语言中,函数参数的传递是“传值”的,即复制一份实参给形参,形参和实参是完全没有关系的两个变量。所以在函数内部改变形参变量,并不会影响到函数外部的实参。要实现“传址”调用,必须通过指针。因为将实参指针内容复制给了形参指针后,两个指针变量虽然没有任何关系,但它们指向的却是同一个内存地址,当改变形参指针所指向的那个内存地址的内容时,实参指针所指向的内容也就同时被改变了,从而实现了“传址”调用。但是,并不是说只要函数参数是指针,那肯定就是“传址”调用。故选择C)。

  13、B14、D15、D16、B17、D18、C19、A20、C【解析】结构件变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。

  二、判断题

  1、错误

  2、正确

  3、错误

  4、正确

  5、错误

  6、正确

  7、错误

  8、错误

  9、正确

  10、错误

  三、编程题

  1、#include"stdio.h"intfun(inta){inti;if(a==2)return1;

  /12i=2;while((a%i)!=0&&i<=sqrt((float)a))i++;if(a%i==0){printf("%disnotaprime!",a);return0;}printf("%disaprime!",a);return1;}main(){intx;printf("\npleaseenteranumber:");scanf("%d",&x);printf("%d\n",fun(x));}2、#includevoidmain(){inti;floatsum=100.0,h=50;for(i=2;i<=10;i++){sum=sum+2*h;h=h/2;}printf("%f,%f\n",sum,h);}3、#include

  structstuff{intstuffID;floatbonus;}a[5];

  intmain()

  11/12{inti;floatmin;for(i=0;i<5;i++)scanf("%d%f",&a[i].stuffID,&a[i].bonus);min=a[0].bonus;for(i=1;i<5;i++){

  if(min>=a[i].bonus)min=a[i].bonus;}for(i=0;i<5;i++)printf("%d%.2f\n",a[i].stuffID,a[i].bonus);

  printf("minBonus=%.2f",min);

  }

  12/12

篇六:!(a%i)

  

  c语言%i

  %i的作用与%d一致,详情可见man3printf

  d,i

  Theintargumentisconvertedtosigneddecimalnotation.

  Theprecision,

  ifany,givestheminimumnumberofdigitsthatmustappear;

  iftheconvertedvaluerequiresfewerdigits,itispaddedontheleftwithzeros.

  Thedefaultprecisionis1.When0isprintedwithanexplicitpre‐cision0,theoutputisempty.

推荐内容

老骥秘书网 https://www.round-online.com

Copyright © 2002-2018 . 老骥秘书网 版权所有

Top