北京化工大学C语言复习题.docx

上传人:b****6 文档编号:2998305 上传时间:2022-11-17 格式:DOCX 页数:15 大小:23.48KB
下载 相关 举报
北京化工大学C语言复习题.docx_第1页
第1页 / 共15页
北京化工大学C语言复习题.docx_第2页
第2页 / 共15页
北京化工大学C语言复习题.docx_第3页
第3页 / 共15页
北京化工大学C语言复习题.docx_第4页
第4页 / 共15页
北京化工大学C语言复习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

北京化工大学C语言复习题.docx

《北京化工大学C语言复习题.docx》由会员分享,可在线阅读,更多相关《北京化工大学C语言复习题.docx(15页珍藏版)》请在冰豆网上搜索。

北京化工大学C语言复习题.docx

北京化工大学C语言复习题

C语言期末总复习参考试卷

一、选择题(共22分)

1.下列变量名中合法的是____。

A) B.C.Tom           B)3a6b           C)_6a7b       D) $ABC

2.C程序的执行是从____开始执行

A)第一条语句         B)主函数         C)命令行      D)第一个出现的函数

3.已知ch是字符型变量,下面不正确的赋值语句是____。

A)ch=‘a+b’;         B)  ch=‘\0’;     C)ch=‘7’+‘9’;    D)ch=5+9;

4.与语句while(x);等价的语句是______。

A)while(x==0);   B)while(x!

=0);   C)while(x!

=1); D)while(~x);

5.已知inti;floatf;下列语句正确的是______。

A)(intf)%i       B)int(f)%i       C)int(f%i)       D)(int)f%i

6.若inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为6的表达式为_____。

A)*(p+6)          B)*p+6         C)*p+=5            D)p+6

7.以下为一维整型数组a的正确说明是_________.

 A)inta(10);               B)intn=10,a[n];

 C)intn;                    D)#defineSIZE10

   scanf("%d",&n);             inta[SIZE];

   inta[n];

8.温度华氏和摄氏的关系是:

C=5/9(F-32)。

已知:

floatC,F;由华氏求摄氏的正确的赋值表达式是____。

A)C=5/9(F-32)      B)C=5*(F-32)/9 C)C=5/9*(F-32) D)三个表达式都正确

9.若有以下说明和语句:

structworker

{  intno;

char*name;

 }work,*p=&work;

 则以下引用方法不正确的是____。

A)work.no           B)(*p).no        C)p->no          D)work->no

10.为了判断两个字符串s1和s2是否相等,应当使用____。

A)if(s1==s2)     B)if(s1=s2)    C)if(strcpy(s1,s2)) D)if(strcmp(s1,s2))

11.下述程序的输出是______。

main()

{charc='A';

 if('0'<=c<='9')printf("YES");

 elseprintf("NO");

}

A)YES            B)NO             C)YESNO              D)语句错误

二、读程序写结果(共18分)

1.下面程序段的运行结果是__________.

  intn=0;

  while(n++<=2);

       printf("%d",n);

2.下面程序的运行结果是__________.

#include

voidmain()

{  inta=15,b=21,m=0;

switch(a%3)

{  case0:

m++;break;

case1:

m++;

switch(b%2)

{  default:

m++;

case0:

m++;break;

}

}

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

}

3.下面程序的运行结果是______。

#include

voidmain()

{  intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

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

}

4.下面程序的运行结果是______。

#include

voidmain(){

inti,j,p,s;

s=0;

for(i=1;i<=4;i++){

             p=1;

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

p=p*j;

s=s+p;

}

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

}

5.下面程序的运行结果是______。

#include

#include

voidmain()

{  char*p=“abcdefg\0hjik\0”;

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

}

6.下面程序的运行结果是______。

#include

intFun(intx)

{           staticinty=0;

y+=x;

returny;

}    

voidmain()

{           int x=10,y=0,k;

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

{    y=Fun(x);

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

       }

}

 

三、程序填空(共14分)

1.下面程序可求出矩阵a的主对角线上的元素之和。

#include

voidmain()

 {inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

    if(i==j)sum=sum+  A     ;

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

}

2.下面程序用于求含有50个元素的一维数组中的最小值及负数的个数;其中一维数组中的每个元素是由公式y[j]=600*sin(j*0.16)得到的。

#include

voidmain()

{ floaty[50],min;

   intj,num=0;

   voidfun(floaty[50],float*min,int*num);

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

         y[j]=600*sin(j*0.16);

      A        ;

   printf(“min=%f,Thenumberofnegativeis=%d”,min,num);

}

voidfun(floaty[50],float*min,int*num)

{ intj;*min=y[0];

   for(j=0;j<50;j++){

         if(*min>y[j])      B      ;

              if(y[j]<0)       C     ;

      }

}

3.下面的程序对用户输入的一串字符进行处理,统计出其中小写字母字符的个数。

#include

voidmain(){                                                                

 chars[100];

 intletter=0,i=0;

 printf("pleaseinputsomecharacters\n");

        A     ;

 while(     B     ){

   if(        C     )

         letter++;

   i++;

 };

 printf("letternum=%d”,letter);

}

 

四、改写程序(3分)

      1.该程序的功能是根据键盘输入的学生考试分数,判断学生是否通过考试。

(60分以上为通过)

   #include

void main()

{  ints;

       scanf("%d",&s);

      if(s>=60) printf("通过考试");

      else       printf("没有通过考试");

}

请用条件运算符  ?

 :

判断结构改写程序中的if else 判断结构。

答案:

一、选择题:

CBABDCDBDDA

1.C

只能有字母、数字、下划线,但是第一个字符不可是数字

 

2.B

 

3.A

‘’中只能是一个字符,a+b不可以

‘\0’是转义字符,可以

数字是可以的(实际上就是输入了对应字符的ASCII码,char和int是近亲)

 

4.B

(D中~是位运算符号,40学时中没讲到)

 

5.D

%两侧必须是整数,注意强制转换符,括号的位置

 

6.C

数组下标从0开始

 

7.D

数组在定义的时候,中括号里必须是常量,不能是变量,否则系统不知道在定义的时候应该给这个数组多少存储空间;但是#define是符号常量,也是常量,可以。

 

8.B

乘号不可以省略,主页君编程的时候经常忘记乘号;

5/9在C语言中得0;5.0/9就不是0了。

 

9.D

结构体引用的三种方式:

(假设有一个结构体work有一个指针p指向work)

work.no

(*p).no

p->no

第三种,左边必须是一个指针项,不可以是常项,所以错;

 

10.D

字符串不可以直接比大小要使用strcmp函数

 

11.A

‘0’<=c<=’9’:

先计算’0’<=c,得1;再计算1<=’9’,得1;所以输出YES

如果要实现数学上的“区间”概念,应该改写成’0’<=c&&c<=’9’

注意,一旦出现||和&&运算符,要考虑这两个符号的“短路问题”

即:

如果||的左边非零,||一定成立,右边的就不做了,即使右边有赋值,++符号等也不做了。

如果&&左边为零,%%一定不成立,右边也就不做了,同上。

 

二、读程序写结果

1.答案:

4

注意:

(1)while后面执行的是空语句;

(2)n++的意义是:

先把n拿出来用,参与运算,运算完了之后n再++

最后一次循环,也就是n等于3的时候,n++<=2是先判断n<=2,为假,准备退出循环,这个时候n再++,所以n=4

 

2.答案:

1

注意:

switch(b%2)嵌套在switch(a%3)之内的,所以case0后面执行了break,跳出大的switch,所以第二个switch就不执行了。

 

3.答案:

20,0

注意:

(1)有个逗号;

(2)if后面执行的语句理论上只有一句,如果想要在if后面执行好多句,需要加{}

此处没有加,所以t=x不执行,但x=y和y=t执行,所以答案是那样子。

 

4.答案:

s=33

注意:

(1)相当于求1的阶乘,2的阶乘,3的阶乘,4的阶乘,再把这四个加起来

(2)注意s=不能丢掉

 

5.答案:

7

注意:

strlen字符串长度统计函数,统计到第一个‘\0’之前有多少个字符,‘\0’不算在内

注意sizeof与之不同

charstr[10

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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