C语言作业

1,输入三角形的边长,求面积假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=Vp(p-a)(p-b)(p-c)开平方:sqrt() #include <math.h> gcc 1.c -Im

2.计算车费。3公里以内(包含3公里)起步价13元。超出3公里,每公里2.3元。

3.执行语句"k=11>>1"后,变量k的当前值:_5

4.有一个变量unsigned char data;

a.请写出将data第6位置1的表达式:    data|64

b.请写出将data第6位清0的表达式:   data&63

c.请写出将data第6位取反的表达式:说明:最右边位为第0位,用十六进制表示

data^64   data^0x40

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

一、单项选择题 

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

  A、 6.500000           B、 6          C、 5.500000           D、 6.000000  

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

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--)的值是(B )。  

A、0  B、1  C、2  D、-1  

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

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

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

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

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

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

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

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

 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数组元素的非法引用是( D )。 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A、a=2.2,b=3    B、a=2.2 b=3    C、2.2 3    D、2.2,3 

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

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最多可执行次数(C ) 

A、4    B、6    C、5    D、1 

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

A、(*p).c2.a     B、(*p).a     C、p->c2.a    D、p.c2.a  

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

19、执行下列语句后,程序的运行结果是( A )
  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、下列程序的运行结果是( A  )

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); } 

运行结果是:   X=12,Y=15           

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的值分别是   1,5       。 

5、x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式:( Z-X>0||Z-Y>0)==1         

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是源字符串。

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

char  str[] = “Hello” ;

char   *p = str ;

int     n = 10;

请计算

sizeof (str ) = 5 

sizeof ( p ) = 1  

sizeof ( n ) = 4  

  

void Func ( char str[100])

{

请计算

sizeof( str ) =100   

}

void *p = malloc( 100 );

请计算

sizeof ( p ) =   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值