一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。
- 以下正确的C语言自定义标识符是()
A. la
B. 2a
C. do
D. a.12
2.在C语言中,错误的常数表示是()
A. OL
B. 0x6aL
C. ‘6’
D. 1.234E3.5
3.设 int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是()
A. 1
B. 2
C. 6
D. 10
- 设有以下程序段:
int x=2,y-2,z-0,a;
a=++x||+y&&z++;
printf(“%d,%d,%dln”,x,y,z);
执行后输出的结果是()
A. 2, 2, 0
B. 3, 3, 1
C. 3, 2, 0
D. 3, 2, 1
5.在C语言中,字符串"\TOP\t\65"的长度是()
A. 5
B. 7
C. 9
D. 12
6·设float x;,由键盘输入: 12.45,能正确读入数据的输入语句是()
A. scanf(“%5f”,&x);
B. scanf(“%5d”,&x);
C. scanf(“%f”,x);
D.scanf(“%s”,&x)
7·逗号表达式a=26,a3,a*5的值是()
A. 12
B. 60
C. 36
D. 41
- C语言表达式3.26*exp(x)+(a+b)/3所表示的数学表达式是()
9.在C语言中,下列运算符中结合性属于自右向左的是()
A.&&
B.-
C.<<
D. ->
10.设int (*p) [4];,则p的含义是()
A. 指向整型变量的指针数组
B.指向4个整型变量的函数指针৪
C. 4个指向整型变量的指针变量s
D.指向具有4个整型元素的一维数组的指针
- charx00-gwdows",“dos”,“unix”);,执行pintf(“%c”,x[1][2]);后输出的结果是()
A.n
b.i
c.o
d.s
12,设 inta[4][3]-{1,2,3,4,5,6,7,8,9,10,11,12);int (* ptr)[3]=a,*p=a[0];,则与数组元素a[1][2]等价的是()
A.((p+2) +3)
B.(* (p+3))
C. (*ptr+1) +2
D. *((ptr+1)[2])
13,设int a-11,b=2;,执行下述程序段后,变量a和b的值分别是(do { a/=b++;} while(a>b);
A. 1,3
B. 1,4
C. 2,3
D. 2,4
14,在C语言中,下列错误的说法是()
A、函数可以递归调用
B. 不允许在函数中再定义函数
C.递归程序不可能用非递归算法实现
D.对于continue语句,可以通过改变程序的结构而不使用它
15、设 inta[2][3]={{1).(2,3)):,则元素a[1][0]的值是
A. 0
B. 1
C. 2
D. 3
16.C 语言结构体类型变量在程序执行期间()
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在在内存中
D. 没有成员驻留在内存中
- 设
struct student
{ char name[10]:
int sex;
int num;
}s,*p=&s;
以下对结构型变量s中成员num的非法引用是()
A. p->num
B. (*p).num
C. s.num
D. student.num
- 下列说法中正确的是()
A.C语言的预处理命令只有宏定义和文件包含
B.预处理命令只能出现在主函数之前
C.所有预处理命令都是以符号"#"开头
D.有些预处理命令不是在源程序编译之前处理
19,已有定义int(*p)():指针p可以()
A. 代表函数的返回值
B.指向函数的入口地址
C.表示函数的类型
D. 表示函数返回值的类型
20,下列属于文件包含的命令是()
A. #define N 25
B. #endif
C. #include “stdio.h”
D. #else
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
#include"stdio.h"
void main(){int x=15;while(x<20){x++;if(x/3!=0) {x++;break;}else continue;}
printf("%d\n",x);
}
2______
#include "stdio.h"
fun(int a[],int i,int j)
{int t;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++j--;fun(a,i.j);}
}
void main()
{
int x0={2,4,6},i;
fun(x,0,2);
for(i=0;i<3;i++)
printf("\n");
}
3________
#include "stdio.h"
void main
{int a,b[10],c,i=0;printf("输入一个整数\n");scanf("%d",&a);while(a!=0){c-a%2;a=a/2;b[i]-c;i++;}for(;i>0;i-)printf("%d",b[i-1]);}
4_______
#include <stdio.h>
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2));else return (2) ;}void main(){ printf("%d",fib(5)); }
5________
#include "stdio.h"
int a=100;
void s0
{static int a=20;a++;printf("%dn",a);}void main{int i;for(i=1;i<=3;i++){a++;printf("%d,",a);s0;}}
三、程序填空题(每空5分,共35分。请将答案填写在答题纸的相应位置上。)
1,对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。
#iclude <stdio.h
#define No 10
void main()
{
int i,a[N]
for(i=N-1;_①;i-)
scanf("%d",_2);
for(i=0;i<N;i++) printf("%d\t",a[i]);
printf("n");
}
2,学生成绩的字母等级和分数范围如下:字母等级分数范围
A 90-100
B80-89
c 70-79
D 60-69
E 0-59
其它字母 输入错误
输入字母等级之后,输出相应的分数范围
#include <stdio.h>
void main()
{
char score;
scanf(“%c”,&score);
switch(_____)
{
case ‘A’: printf(“A:90-100ln”);break;
case ‘B’: printf (“B:80-89ln”);break;
case ‘C’: printf (“C:70-79n”);break;
case D’: printf (“D:60-69n”);break;
case E’: printf (“E: 0-59n”);break;
②printf(“输入错误n”);
}
}
- 计算 Fibonacci 数列。
#include “stdio.h”
long Fib(int n);
int main
{
int n, i, x;
printf(“Input n: “);
scanf(”%d”, &n);f
or (i=l; i<=n; i++)
{
x=①;
printf(“Fib(%d) = %d\n”, i, x);
}
return 0;
}
long Fib(int n)
{
if (n=0)
return 0;
else if(2)
return 1;
else
return③;
}
四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)1输入自变量x的值后,计算并输出y的值。
2用循环结构输出下列数字金字塔(共9行)。
3,某重点大学的博士入学考试科目为外语和两门专业课,对于每个考生信息有学号,姓名,现有10名考生,输入各科考试成绩,并计算总分。