DAY9——笔试题

C语言考试题(考试时间:60分钟)

一、单项选择题 

1、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(  )

  A、 6.500000           B、 6          C、 5.500000           D 6.000000  

2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 ( )  

A、 INPUT x、y、z;                B scanf("%d%d%d",&x,&y,&z);   

C、 scanf("%d%d%d",x,y,z);      D、 read("%d%d%d",&x,&y,&z);   

3、设 int  x=1, y=1; 表达式(!x||y--)的值是( )。  

A、0  B1  C、2  D、-1  

4、对两个字符数组a和b进行初始化char a[]="ABCDEF";char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是(  )。 

A、a与b数组完全相同     B、a与b长度相同    

C、a和b中都存放字符串   Da数组比b数组长度长  

5、为了避免在条件语句if―else中产生二义性,c语言规定:else子句总是与(  )配对。  

A、缩排位置相同的if  B、其之前最近的if   C、其之后最近的if   D、同一行上的if 

6、下面不正确的字符串常量是( ) 

A 'abc'    B、 "12'12"      C、 "0"      D、 "  " 

7、以下错误的if语句是( )。

 A、 if(x>y) z=x;                                                                B、 if(x= =y) z=0;  

C if(x!=y) printf("%d",x) else printf("%d",y);         D、 if(x<y) { x++;y--;} 

8、若有说明:int  a[3][4];则对a数组元素的非法引用是(  )。 

A、a[0][2*1]   B、a[1][3]   C、a[4-2][0]   Da[0][4] 

9、程序char c[5]={‘a’,’b’,’\0’,’c’c,’\0’}; printf(“%s”,c);}的运行结果是(  )。 

A、'a''b'  B、abc  Cab  c  D、ab cc 

10、一个C程序的执行是从(  )。 

A、本程序的main函数开始,main函数结束 

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

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

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

11、若变量已正确定义,以下非法的表达式是( ) 

A、a/=b+c    Ba%(4.0)    C、a=1/2*(x=y=20,x*3)    D、a=b=c 

12、判断字符串a是否大于b,应当使用(  )。 

A、if (a>b)  B、if (strcmp(a,b))   C、if (strcmp(b,a)>0)   Dif (strcmp(a,b)>0) 

13、以下关于运算符优先顺序的描述中正确的是( )。 

A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 

B、逻辑与运算符<关系运算符<算术运算符<赋值运算符  

C、赋值运算符<逻辑与运算符<关系运算符<算术运算符

 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 

14、使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:( ) 

Aa=2.2,b=3    B、a=2.2 b=3    C、2.2 3    D2.2,3 

15、表示关系12<=x<=y的C语言表达式为:( ) 

A、(12<=x)&(x<=y)   B(12<=x)&&(x<=y)  

 C、(12<=x)|(x<=y)  D、(12<=x)||(x<=y) 

16、语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数( ) 

A、4    B、6    C5    D、1 

17如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用(  

A(*p).c2.a     B(*p).a     Cp->c2.a    Dp.c2.a  

18、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为(  )
  A、1              B2               C、3             D、4

19、执行下列语句后,程序的运行结果是(  )
  int main()
  {
     int x = 10,y = 10, i;
     for(i=0;x>8;y=i++)
     {  printf(“%d,%d,”,x--,y);    }

}
 A.10,0,9,1     B.10,10,9,0      C.10,1,9,2          D.9,10,8.0

20、下列程序的运行结果是(  )

struct example1 

{

short a;  long b;  }; 

struct example2 

{  char c;   example1 struct1;  short e;     }; 

int main() 

printf(%d, sizeof(example1)); 

printf(%d, sizeof(example2)); 

}
A. 6,9        B. 6,10           C. 8,16       D. 8,24

       

二、填空题 

1、a是整型变量,则执行表达式a=25/3%3后a的值为。 2 

2、下面程序的运行结果是 。   

main() 

int i,x,y;    i=x=y=0; 

        do {

++i;       

if(i%2!=0)   {x=x+i;  i++;}      

 y=y+i++;     

} while (i<=7); 

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

运行结果是:  120      

3、若int x=5;while(x>0)printf(“%d”,x--);的循环执行次数为  5        。 

4、若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++则b和y的值分别是  15   。 

5、x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式: x<z||y<z    

6、以下程序的输出结果为( 
main( )
{  char *a[]={
welcome,to,ruishang};
   char **pa=a;    pa++;
printf(“%s”,*pa);return ;  }

 

四、编程题  

1、输入3个学生4门课的成绩{(60,70,65,75)(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数

2、起泡法(选择法)对十个数排序 

3、编写strcpy函数:已知strcpy函数的原型是  char *strcpy(char *strDest, const char *strSrc);  其中strDest是目的字符串,strSrc是源字符串。

#include <stdio.h>

void my_strcpy(char str[],char str1[]);

int main(int argc,const char *argv[]){

    char str[32]=”hello”;

    char str1[32];

    printf(“%s\n”,str1);

    return 0;

}

void my_strcpy(char str[],char str1[]){

    int i=0;

    while(str[i]!=’\0’){

        str1[i]=str[i];

        i++;

    }

    Str1[i]=’\0’;

}

4. 以下为ARM下的32C程序,请计算sizeof的值

char  str[] = “Hello” ;

char   *p = str ;

int     n = 10;

请计算

sizeof (str ) = 

sizeof ( p ) =  

sizeof ( n ) =  

 

void Func ( char str[100])

{

请计算

sizeof( str ) =  

}

void *p = malloc( 100 );

请计算

sizeof ( p ) =  

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值