中央美术学院计算机C语言预测卷
本试卷为中央美术学院计算机C语言预测卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言预测卷
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、设整型变量a为5,使b不为2的表达式是________。
( A )
2、在c语言中,存储一个字符型、整型、单精度实型变量所需的空间是________。型、单精度实型变量所需的空间是________。
( C )
3、下面程序的输出是________。("□"表示一个空格) int a=3366; printf("|%-08d|",a);
( B )
4、设x为int型变量,则执行语句x=10和x+=x-=x-x后,x的值为:
( A )
5、下面合法的 c 语言字符常量是 ____________.
( D )
6、在浮点数编码表示中, (1) 在机器数中不出现,是隐含的。
( A )
7、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的c语言表达式是 ______ 。
( D )
8、下列哪个赋值语句是正确的
( B )
9、以下选项中表示一个合法的常量是(说明:符号∏表示空格)
( A )
10、表示关系x≥y≥z应使用c语言表达式 ( )
( B )
11、设有定义:long x= -123456l; 则以下能够正确输出变量x值的语句是________。
( C )
12、以下关于链式存储结构的叙述中哪一条是错误的?
( C )
13、判断闭区间*判断实数 x 属于闭区间 [a, b ] 的表达式为 ▁▁▁▁▁
( A )
14、设a=5、b=6、c=7、d=8、m=1、n=1,执行(m=a>b)&&(n=c>d)后n的值为______。
( A )
15、以下不符合c语言语法的赋值语句是________。
( D )
16、以下叙述正确的是________。
( D )
17、设x的值为4,则表达式y=(++x)+(++x)+(++x)后,y的值是________。
( D )
18、设变量定义为"int a, b;
",执行下列语句时,输入(),则a和b的值都是10.\n scanf("a=%d, b=%d",&a, &b);
( D )
19、已知int i; float f; 正确的语句是________。
( D )
20、C语言函数的隐含存储类别是________.
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
( D )
2、能正确表示a和b同时为正或同时为负的逻辑表达式是________。
( C )
3、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( C )
4、关于结构化程序设计原则和方法的描述错误的是________。
( A )
5、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
( C )
6、有以下程序
main()
{
int i=1,j=1,k=2;
if((j++‖k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是________。
( B )
7、以下if语句书写正确的是________。
( B )
8、c语言中,关系表达式和逻辑表达式的值是________。
( C )
9、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( B )
10、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、下列4个关于c语言的结论中错误的是________。
( A )
2、有以下程序
#include <stdio.h>
main()
{
int c;
while ((c=getchar())!='\n')
{
switch(c-'2')
{
case 0: case 1: putchar(c+4);
case 2: putchar(c+4);
break;
case 3: putchar(c+3);
default: putchar(c+2);
break;
}
}
printf("\n");
}
从第一列开始输入以下数据,<cr>代表一个回车符。 2473<cr> 程序的输出结果是________。
( A )
3、下列语句中,可以作为无限循环语句的是________。
( B )
4、执行下面的程序后,a的值为________。
#include <stdio.h>
int main()
{
int a,b;
for(a=1,b=1; a<=100; a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
printf("%d", a);
}
( A )
5、结构化程序设计思想的核心是要求程序只由顺序、循环和______三种结构组成。
( C )
6、在下列叙述中,正确的一条是______。
( C )
7、有以下程序
main()
{
int i;
for(i=1;i<=40;i++)
{
if(i++%5==0) if(++i%8==0) pfintf("%d",i);
}
printf("\n");
}
执行后的输出结果是________。
( C )
8、设n为整型变量,则for(n = 10; n >= 0; n--)循环的次数为________。
( B )
9、关于循环体while的说法下列正确的是________。
( C )
10、以下描述正确的是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、下面程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int i,j,x=0;
static int a[6]={1,2,3,4,5,6};
for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j];
printf("%d\n",x);
}
( D )
2、设有二维数组a(12,10),其每个元素占4个字节,数据按列优先顺序存储,第一个元素的存储地址为100。则元素a(5,5)的存储地址为________。
( B )
3、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( D )
4、执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为______。 int a[]= { 5,4,3,2,1 },*p[]= { a+3,a+2,a+1,a },**q=p;
( A )
5、若定义static int a[2][2]={1,2,3,4 },则a数组的各数组元素分别为______。
( B )
6、二维数组m[i,j]的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i范围从0到4,列下标,i的范围从0到5。m按行存储时元素m[3,5]的起始地址与m按列存储时元素( )的起始地址相同。
( B )
7、一个int型变量,在程序中多次频繁使用,最好定义它为________。
( A )
8、下列程序的执行结果是 ______。
#include<stdio.h>
union un {
int i;
char c[2];
}
void main() {
union un x;
x.c[0]=10;
x.c[1]==1;
printf("\n%d",x.i);
}
( D )
9、以下对一维数组c 进行正确的定义初始化的语句是________。
( C )
10、与实际参数为实型数组名相对应的形式参数不可以定义为________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下选项中能表示合法常量的是________。
( B )
2、下列数据中为字符串常量的是________。
( D )
3、以下能正确定义字符串的语句是________。
( D )
4、在c语言中,以 作为字符串结束标志
( D )
5、如果在一个运算表达式中包含有逻辑运算、关系运算和算术运算,并且其中未用圆括号规定这些运算的先后顺序,那么这样的综合型表达式的运算顺序是______。
( C )
6、以下能将字符串,you are luck!正确读入的语句组是________。
( B )
7、宏定义用于将一个标识符定义为一个
( A )
8、下列对字符串的定义中,错误的是________。
( D )
9、下面关于编译预处理命令,正确的是________。
( A )
10、下面程序的功能是将字符串s 中所有的字符'c'删除。
#include "stdio.h"
main()
{
char s[80];
int i,j;
gets(s);
for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ;
s[j]='\0';
puts(s);
}
六、函数/函数指针 (共10题,每题1分,共计10分)
( A )
1、在c语言中,函数的数据类型是指( )
( B )
2、已有定义 int ( *p )(); 指针 p 可以 。
( B )
3、以下函数调用语句中含有实参个数为 __________. func((exp1,exp2),(exp3,exp4,exp5));
( C )
4、以下正确的说法是________。
( D )
5、有以下程序:
main( )
{
char a[ ]={‘a',‘b',‘c',‘d',‘e',‘f',‘g',‘h',‘\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
程序运行后的输出结果是________。
( B )
6、以下程序的运行结果是________。
#include <stdio.h>
#define MIN(x,y) (x)<(y) ? (x):(y)
main() {
int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
( D )
7、设有语句: x=inputbox("输入数值","0","示例") 程序运行后,如果从键盘上输人数值10并按回车键,则下列叙述中正确的是______。
( B )
8、以下程序的输出结果是________。
#include<stdio.h>
int m=13;
int fun(int x,int y) {
int m=2;
return(x*y-m);
}
main()
{
int a=7,b=6;
printf("%d",fun(a,b)/m);
}
( C )
9、printf 函数中用到格式符%5s ,其中数字5 表示输出的字符串占用5 列。如果字符串长度小于5,则输出按方式。
( B )
10、有以下程序段:char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要给 c1、c2、c3 分别输入字母 a bc,则以下对输入形式的描述正确的是________。
七、指针 (共10题,每题1分,共计10分)
( D )
1、下列选项中,能正确定义数组的语句是________。
( C )
2、有如下函数定义;
void func(int a,int & b)
{
a++;
b++;
}
若执行代码段:int x=0,y=1;
func(x,y);
则变量x和y的值分别是________。
( A )
3、c程序的执行是从( )开始执行的
( A )
4、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
( A )
5、有以下程序:
#define P 3
void F(int x)
{
return(P*x*x);
}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是______。
( B )
6、某一维数组中依次存放了数据元素12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历"比较"运算的数据元素依次为________。
( D )
7、以下叙述中正确的是________。
( D )
8、对于 if(表达式)语句,以下说法正确的是________。
( C )
9、c语言规定,在一个源程序中,main函数的位置________。
( D )
10、若有说明: int a[3][4]={0};则下面正确的叙述是()。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、设有如下定义:
struct sk
{
int a ;
float b ;
}
data , *p ;
若有 p=&data ;
, 则对 data 中的 a 域的正确引用是______。
( A )
2、下列描述说明正确的是________。
( A )
3、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
( B )
4、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
( D )
5、若有以下说明和语句:
struct st
{
int n;
char *ch;
}
;
struct st a[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a 则值为6的表达式是______。
( D )
6、有以下程序:
#include <stdio.h>
struct s
{
int a, b;
}
data[2]= {10, 100, 20, 200 };
main()
{
struct s p=data[1];
printf("%d\n", ++(p.a));
}
程序运行后的输出结果是______。
( C )
7、在c语言中,系统为一个结构体变量分配的内存是________。
( C )
8、下列关于共用体类型变量的描述中,正确的是________。
( D )
9、表达式 *((int *)(p+1)+2)的值时_______.
static struct
{
int x, y[3];
}
a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p;
p = a+1;
( A )
10、当定义一个结构体变量时,系统分配给它的内存是________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、设有如下程序段: int i=0, sum=1;
do
{
sum+=i++;
}
while(i<6);
printf("%d\n", sum);
上述程序段的输出结果是________。
( D )
2、下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。
#include <stdio.h>
main( )
{
int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{
a+=i;
________;
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
( B )
3、要求下面的程序运行后 , 显示如下结果 : 2 10 4 6 1 5 2 3 2 4 7 8 5 1 3 2 则程序中的划线处应填入 __________.
#include <stdio.h>
void main( )
{
int a[4][4]= { ________ }
;
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++) printf("%4d",a[i][j]);
printf("\n");
}
}
( B )
4、有以下程序
#define N 5
#define M N+1
#define f(x) (x*M)
main() {
int i1,i2;
i1=f(2);
i2=f(1+1);
printf("%d %d",i1,i2);
}
程序的运行结果是______。
( B )
5、下面程序段执行结果是________。 int i=5,k;
k=(++i)+(++i)+(i++);
printf("%d,%d",k,i);
( D )
6、以下程序的输出结果是________。
#include<stdio.h>
void main( )
{
int k=17;
printf("%d,%o,%x\n",k,k,k);
}
( B )
7、请阅读下面的程序,选择正确的输出结果。( )
void main()
{
printf("%d",null);
}
( D )
8、有如下程序
main( )
{
int a[3][3] = {{1,2},{3,4},{5,6}}, i,j,s = 0;
for(i=0; i<3; i++)for(j=0; j<=1; j++) s+=a[i][j]];
printf("%d\n",s);
}
该程序的输出结果是______。
( D )
9、有以下程序#define P 3
void F(int x)
{
return(P*x*x);
}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是______。
( D )
10、下面程序的运行结果是________。
#include <stdio.h>
#include <string.h>
main()
{
char a[20] = "ab", b[20] = "lmnp";
int i = 0;
strcat(a, b);
while (a[i++] != '\\0') b[i] = a[i];
puts(b);
}
相关标签:
- C语言
- 中央美术学院
- 预测卷