《高级语言程序设计(C语言)A试卷和参考答案
一、选择题(每题2分,25题,共50分)
下列各题A、B、C、D四个答案中,只有一个选项是正确的,请将
每题的正确答案写在答题纸对应序号的横线上,答在试卷上不能得分
1、对于C语言的函数,下列叙述中正确的是(1)
  A、函数的定义不能嵌套,但函数调用可以嵌套
  B、函数的定义和调用都有不能嵌套
  C、函数的定义和调用都能嵌套
  D、函数的定义能嵌套,但函数调用不能嵌套
2、以下程序的输出结果是 (  2  )。
main()
{int x=1,a=2, b=3;
  switch(x)
  { case 0: b=b+a;break;
    case 1: a=b+a;
    case 2: ++a;++b;
        }
 
  printf("a=%d,b=%d\n",a,b);
}
Aa=6,b=4     B、a=5,b=3      C、a=6,b=3      D、a=5,b=4
3、以下程序的输出结果是(  3 )。
main()
{int a=1,c;
c=7/2||++a;
printf("%d,%d ",a,c);
}
A1,1           B、0,1
C、1,3          D、2,3
4、若: char s[30][30];则数组元素的非法引用是(4)。
A、s[20][9]          Bs[29+1][2*3]
C、s[3][29]          D、s[9][30-1]
5、有以下定义语句:
int a[10]={3, 9, 11, 14, 20, 32, 60}, *p;
p=a;
则  ++(*++p) 的值是 (5)
A、    9        B、11        C、22        D10
6、下列可以正确表示字符型常数的是  ( 6 )
    A、"a"      B、"\010"      C'\n'      D、h
7、若定义语句 float bb[100],则该数组array元素的
  上、下限为 ( 7 )  。
  A  099      B、99,0      C、100,1      D、0,100
8、下列各组字符序列中,可用作C语言程序标识符的是(8)。
ASBSD                            B、 _1$234printf函数属于
C、spr#it                          D、  4_cf_1在
9、已知:char ch='t';则下列表达式的值是 (  9  )
ch = (ch>='a'&&ch<='z') ? (ch-32) : ch;
  AT     B、A    C、Z      D、t
10、以下程序段的输出结果是( 10 )  。
Char s[]="\\\nabcert";
printf("%d\n",strlen(s));
A、9        B8           C、11          D、10
11、能正确表达数学关系|a|>10的表达式是 ( 11 ) 。
A、10>a>-10                    Ba>10 ||-10>a
C、a>-10||10>a                  D、a>10 && -10<a
12、设x、y、z和k都是int型变量,则执行表达式:
    x=(y=k=2, z=k+8, y=y+z)后
    的值为(  12  )。
A12           B、10              C、2            D、0
13、以下数据中不属于int类型的是(13)。
A、-32768                          B、0x23
C、036                            D32768
14、设 int a=5,b=10,t,*x=&a、*y=&b;则以下语句:
    { t=*y; *y=*x; *x=t};
    的功能是 (  14  ) 。
A、无确定结果                    B、交换x和y中的值
C、交换ab中的值             D、a和b的值不变
15、以下的for循环( 30    ) 。
for(x=1;  x>0;x++);
A、是无终止的循环                B、一次也不执行
C、执行4次                      D、执行3 次
16、以下程序的输出结果是(16)。
#include<stdio.h>
main()
{
int x,t;
x=10;
t=(--x)+(--x);
printf("%d\n",t);
}
A、17        B、19        C16         D、18
17、合法的数组定义是 ( 17  )。
A、char b[n]="yes";          B、char b[4]={"y", "e", "s"};
Cchar b[4]={'y','e','s'};     D、char b="yes";
18、以下程序的输出结果是:( 18  )
main()
{  char  *ch[]={"cccc","bbbb","aaaa","dddd"};
  printf("\"%s\"\n",ch[2]);
}
A"aaaa"      B、"bbbb"      C、"cccc"    D、"dddd"
19、以下程序的输出结果是(  19  ) 。
#include<stdio.h>
main()
{
int a=2, b=5;
printf("a=%d%%,b=%d%%\n",a, b);
}
A、a=%2, b=%5                      B、a=2, b=5
C、a=%%d, b=%%d                    Da=2%, b=5%
20、有如下程序:
  main()
  {
  int i,sum;
  for(i=1;i<6;i++)
  sum+=i;
  printf("%d\n",sum);
   
  }
程序执行后sum的值是(20)
A、15    B、14    C、不确定    D、0
21、若变量a是float类型,并执行了语句:a='B'+2.6;
    则正确的叙述是( 21 )。
A、a的值是字符b          ba的值是字符'B'ASCII值加上2.6
C、a的值是整型          D、a的值是字符'B'的ASCII值加上2     
22、以下程序的输出结果是( 22  )。
main()
{ int i;
for (i=1;i<=5;i++)
  {
  if(i%2==1)
  printf("*");
  else
  printf("#");
  }
printf("$\n");
}
A、***##$      B、###**$      C*#*#*$      D、#*#*#$
23、若有说明语句:int a, b, c, *d=&a;, 则能正确从键盘读入三个整数
    分别赋给变量a、b、c的语句是(  23  )。
A、scanf("%d%d%d",&a,&b,&d);        B、scanf("%d%d%d",&a,&b,c);
Cscanf("%d%d%d",d,&b,&c);           D、scanf("%d%d%d",a,b,*d);
24、若定义:char a='B',*b=&a则printf("%c\n",++*b);
的输出结果为( )。
A、'a'      B、a的地址    C、'B'          D'c'
25、.为判断char型变量m是否是小写字母,可用表达式 ()  。
A、"a"<= m && m<=“z”          B、a<=m && m<=z
C'a'<=m && m<='z'              D、三个答案都错
2005-20062C语言试卷A编程题与评分标准
(两道题,提示:可以进入C编程环境编好程序,然后分别用:TEST1TEST2的名字存在A盘。也可以直接在WORD的界面编程,然后分别用:TEST1TEST2的名字存在A盘或在本版面编程直接存盘)
评分标准:
题目一
编一程序,输入两个整数,然后按从小到大的顺序输出。(14分)
一、 算法正确、语句正确、结果正确。(14分)
二、 算法正确(8分)
三、 定义两个整型变量、有输入语句,(1-4分)
四、 有条件语句和比较功能(3-7分)
五、 有打印语句(3分)
参考答案:
main()
{ int a,b;
  scanf(“%d,%d,&a,&b;
  if(a<=b)
printf(\n %d,  %d,a,b);
  else
printf(\n %d,  %d,b,a);
}
题目二
已知一组字符数组a[11]=a5Bc3bWj9k;一组字符数组b[10]; 编一程序,请将字符数组a[]中的小写字母放入数组b[]中,并对数组b[]按从大到小顺序排序,(数组b[]中没有值的元素不排)最后打印字符数组b[]。(20分)
评分标准:
一、 算法正确、语句正确、结果正确。(20分)
二、 算法正确(15分)
三、 定义变量、数组(1-2分)
四、 有条件语句(3分)
五、 有循环、取字母的功能、算字母个数(3-9分)
六、 有排序功能(4分)
七、 有打印数组语句(2分)
参考答案:
main()
{ char b[10],x;
  char a[11]="a5Bc3bwj9k";
  int i,j,cnt=0;
  for(i=0;i<=9;i++)
    if(a[i]>='a'&&a[i]<='z')
    b[cnt++]=a[i];
  for(i=0;i<cnt-1;i++)
    for(j=i+1;j<cnt;j++)
    if(b[i]<b[j])

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。