C语言试题(一)

👉一、选择题

1、 现有定义int a;double b;floatc;char k;,则表达式a/b+c-k值的类型为:.(B)
A、 float B、double C、int D、char
2、 以下正确的字符串常量是©.
A、 thank you B、“\\” C、“abc” D、‘opqrst’
3、 设有定义:int k=0;,下列选项的4个表达式中与其他3个表达式的值不相同的是(A).
A、 k+1 B、++k C、k++ D、k+=1

 4、执行下面程序段后,s的值是(B).
int s=5;
switch(++s)
{case 6:
case 7:s+=2;
case 8:
case 9:s+=2;
}
A、7  B、10  C、6  D、8

5. 有以下程序:(C)
#include<stdio.h>
main(){
int n=2,k=0;
while(k++&&n++>2);
printf("%d%d\n",k,n);
}
A、0 2  B、1 3  C、1 2  D、5 7
          
  6. 有以下程序:(D)
#include<stdio.h>
main(){
int c=0,k;
for (k=1;k<3;k++)
switchk{
default:
c+=k;
case 2:
c++; break;
case 4:
c+=2; break;
}
printf("%d\n",c);
}
A、7  B、9  C、5  D、3
       

7、程序main(){char s[10];s="abcd";printf("%s\n",s);}的运行结果(以下U代表空格)(B).
  A、输出abcd  B、编译不通过  C、输出a  D、输出abcdUUUUU
  
8、以下对二维整型数组的正确说明是(D)
   A、int n; sacnf(%d”,&n);int array[n][n]
   B、int arry()
   C、int n=10,array[n][n]
   D、#define M 10(换行) int array[M][M]
   
9int a[10];合法的数组元素的最小下标值为(C).
           A、10  B、1  C、0  D、9
10、下述对C语言字符数组的描述中错误的是(D).
           A、字符数组中的字符串可以整体输入,输出
           B、不可以用关系运算符对字符数组中的字符串进行比较
           C、字符数组中可以存放字符串
           D、可以通过赋值运算符“=”对字符数组整体赋值
           
11、已有声明"int x,a=3,b=a;",则执行赋值语句"x=a>b++?a++:b++;",变量x,a,b的值分别是(D).
           A、3 3 4  B、3 3 3  C、343  D、4 3 5
           
12、以下对C语言函数的有关描述中正确的是(D).
A、在C中调用函数时,只能把实参值传给形参,形参值不能返回给实参 
B、C程序中有调用关系的所有函数必须放在同一个源程序文件中 
C、没有返回值的函数不能被使用
D、C函数可以递归调用也可以嵌套调用

13、执行以下程序段后,输出结果和a的值是(C).
	int a=10;printf("%d",a++);
    A、1110  B、1010  C、1011  D、1111
    
14、若有定义:int j=3;,则下列语句的结果是(B).
printf("%d,",++j);
A、33  B、44  C、43  D、34
 15、已知int a=6;则执行a+=a-=a*a;语句后,a的值为(B).
	A、-24  B、-60  C、36  D、0
 16、以下叙述正确的是(B).
	A、用do-while 语句构成的循环,在while后的表达式为非零时结束循环
    B、用do-while 语句构成的循环,在while后的表达式为零时结束循环
    C、do-while语句构成的循环只能用break语句退出
    D、do-while语句构成的循环不能用其它语句构成的循环来代替
17、以下叙述正确的是(B)
    A、在一个函数体内可以定义另外一个函数
    B、用户定义的函数可以被一个或多个函数调用任意多次
    C、C语言系统以函数为单位编译源程序
    D、main()函数必须放在程序开始
18、下列叙述中错误的是(B).
    A、复合语句在语法上被看作一条语句
    B、空语句出现在任何位置都不会影响程序运行
    C、赋值表达式末尾加分号就构成赋值语句
    D、C语句必须以分号结束
19、C语言源程序名的后缀是(B).
    A、.exe  B、.C  C、.cp  D、.obj
20、任何一个C语言的可执行程序都是从(main()函数的入口处)开始执行的.

👉二、程序填空

1、下述语句的输出为__2,2.555556___。
          int x=2.5555555;
          float  y=2.5555555;
  		printf("%d,%f",x,y);
 2int x=12;z=x+1; 则z的值为__13___.
 
3、以下程序的执行结果是___9__。
main()
{ 
  int k=8;
  switch(k)
{
case  9: k+=1;
case 10: k+=1;
case 11: k+=1; break;
default: k+=1;
}
printf("%d\n",k);
}

 4、数组char a[2]中的所有元素是a[0]和__a[1]___.
 
 5、已知char s[]={"book"}; 数组s中字符串长度是_4____.

 6、在函数中,需要返回一个结果时,可以使用__return___语句.
 
 7、经过下述赋值后,变量x的数据类型是__int___。
          int x=2;
          double  y;
   		y=(int)(float)x;
8、函数体由符号__{__开始,用符号___}__结束。

9int x=2;x*=4; 则x的值为__8___.
10、C语言中,数组名是一个不可变的___地址__常量,不能对它进行加减和赋值运算.

👉 三、 程序改错


 /*------------------------------------------------------    
【程序改错】
--------------------------------------------------------

功能:编写函数fun计算下列分段函数的值:
             x*20      x<0且x≠-3
       f(x)= sin(x)     0≤x<10且x≠2及x≠3
             x*x+x-1      其它

------------------------------------------------------*/

#include "math.h"
#include "stdio.h"

float fun(float x)
{
  /**********ERROR**********/
  float y改为float y;
  /**********ERROR**********/
  if (x<0 || x!=-3.0)
     y=x*20;
  else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0)
     y=sin(x);
  else y=x*x+x-1;
  /**********ERROR**********/
  return x;
}

main()
{ 
  float x,f;
  printf("Input x=");
  scanf("%f",&x);
  f=fun(x);
  printf("x=%f,f(x)=%f\n",x,f);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想new的出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值