大理大学计算机C语言
本试卷为大理大学计算机C语言,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、下面的变量说明中________是正确的。
( B )
2、下列能正确定义且赋初值的语句是________。
( D )
3、下列选择中,不能用做标识符的是________。
( B )
4、下面实现换行功能的格式符为________。
( B )
5、下面对的叙述中不正确的是______。
( D )
6、下列对程序解决问题的过程描述中,哪项是正确的( )
( D )
7、设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是________。
( D )
8、已知小写英文字母"a"的ascii码值为61h,现字母"g"被存放在某个存储单元中,若采用偶校验(假设最高位作为校验位),则该存储单元中存放的十六进制数是______。
( D )
9、一个汉字的内码长度为2个字节,其每个字节的最高二进制位的值依次分别是______。
( C )
10、字面常量42、4.2、42l的数据类型分别是________。
( B )
11、下列可用于c语言用户标识符的一组是________。
( B )
12、以下合法的赋值语句是______。
( D )
13、在64位高档微机中,一个字长所占的二进制位数为________。
( C )
14、下面判断正确的是________。
( B )
15、已知英文字母m的ascii码值为6dh,那么字母q的ascii码值是________。
( B )
16、假设x=10,y=9,则表达式"x!=y"的值是________。
( D )
17、对于64位系统,int类型能够表示的数的范围为
( A )
18、编写c语言程序并上机调试运行的一般过程是________。
( A )
19、设有定义:int x=2,*p=&x; float=3.0; char z='c'; 则立即进行以下运算有安全隐患的是________。
( C )
20、若有说明:int *p1,*p2,m=5,n; 以下均是正确赋值语句的选项是________。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、有如下程序:
main ()
{
int x = 1, a = 0, b = 0;
switch (x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++;
b++;
}
printf ("a = %d, b = %d\n", a, b);
}
该程序的输出结果是________。
( A )
2、if语句的基本形式是:if(表达式)语句,以下关于"表达式"值的叙述中正确的是______。
( A )
3、有如下程序
main()
{
int x=1,a=5,b=5;
switch(x)
{
case 0: b--;
case 1: a--;
case 2: a--;
b--;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是______。
( C )
4、下列if语句中,不正确的是________。
( B )
5、以下叙述中正确的是________。
( D )
6、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
( B )
7、c语言的switch语句中case后____
( D )
8、在c 的if 语句中,可用作条件的表达式是________。
( A )
9、c 语言中逻辑表达式的值为________。
( B )
10、将三个数排序需要比较________次。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、若变量已正确定义,有以下程序段
i=0;
do printf("%d,"i);
while(i++);
printf("%d\n",i);
其输出结果是________。
( D )
2、以下循环体的执行次数是 _________
#include<stdio.h>
void main( )
{
int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--) printf("%d \n",i);
}
( B )
3、下列for循环语句的执行次数是________。 for(int x=0,y=0;(y!=0)&&(x<4);x++)
( A )
4、下列程序是死循环的是________。
( D )
5、流程控制语句的基本控制结构有三种,其中不包括________。
( D )
6、以下的 for 循环次数是多少次? for(x=0,y=0;(y!=123)|| (x<4);x++) ;
( A )
7、while(fabs(t)<1e-5)if(!s/10)break; 循环结束的条件是________。
( C )
8、以下描述中正确的是________。
( B )
9、下面用户自定义的标识符中,合法的是________。
( C )
10、下面程序段。x=3;
do
{
y=x--;
if(!y)
{
printf("*");
continue;
}
printf("#");
}
while(1<=x<=2);
四、数组/指针数组 (共10题,每题1分,共计10分)
( C )
1、对两个数组a和b进行下列初始化: char m[]="1234567"; char n[]={'1','2’,'3','4','5','6','7'};则下列叙述正确的是________。
( A )
2、在c语言中对于实型数组,其每个数组元素的类型是________。
( A )
3、如有定义语句 int a[]={ 1,8,2,8,3,8,4,8,5,8 }; 则数组 a 的大小是 __________.
( A )
4、二维数组a[8][9]按行优先顺序存储,若数组元素a[2][3]的存储地址为1087,a[4][7]的存储地址为1153,则数组元素a[6][7]的存储地址为 ( )
( D )
5、下面说明不正确的是________。
( B )
6、下列关于字符串的说法中错误的是________。
( D )
7、以下关于排序算法的叙述中,正确的是________。
( A )
8、有说明语句int a[4][5]; 则a[2]+3表示__。
( C )
9、以下能对一维数组a进行正确初始化的语句是________。
( D )
10、有字符数组a[80]和b[80],则正确的输出语句是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、c语言中,下列不合法的字符串常量是________。
( C )
2、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是________。
( A )
3、下列字符串是标识符的是: 。
( B )
4、下列关于串的叙述中,哪一条是正确的( )
( D )
5、下列字符常量的写法中,正确的是________。
( D )
6、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是________。
( D )
7、有以下程序
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)}
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[i][0])>s[j][0]){
t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;
}
main()
{
char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5);printf(”%s,%s”,ss[0],ss[4]);
}
程序运行结果是________。
( B )
8、下面选项中合法的字符常量是________。
( D )
9、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个______
( A )
10、下面不能正确进行字符串赋值操作的语句是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、以下函数,一般情况下,功能相同的是________。
( A )
2、已有函数 max ( a , b ),为了让函数指针变量 p 指向函数 max ,正确的赋值方法是______。
( C )
3、以下正确的叙述是______。
( D )
4、在c 语言程序中,在函数内部定义的变量称为________。
( D )
5、有以下程序:
voidf(int *x,int * y)
{
int t;
t= *x;
*x= *y;
*y=t;
}
main()
{
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&a[7];
while(p)
{
f(p,q);
p++;
q--;
}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是______;
( D )
6、设函数定义如下: float f1(float a,float b)
{
return(a+b);
}
若有float x=1.1,y=2.2;
,则以下语句中正确的函数调用是________。
( C )
7、若有"double a; ",则正确的输入语句是________。
( C )
8、下列选项中,关于main()函数叙述不正确的是________。
( B )
9、如果在一个函数中的复合语句中定义了一个变量,则该变量________。
( C )
10、以下叙述中正确的是________。
七、指针 (共10题,每题1分,共计10分)
( D )
1、若有定义:int a[10],则对数组a元素的正确引用是________。
( C )
2、有定义语句:int *p[4]; 以下选项中与此语句等价的是________。
( B )
3、若有以下定义 int x[10], *pt=x; 则对x数组元素的正确引用是________。
( B )
4、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( D )
5、设已有定义:float x; 则以下对指针变量p进行定义且赋初值的语句中正确的是______。
( C )
6、下列选项中,表示字符串末尾的结束标志是________。
( B )
7、对于int *pa[5]; 的描述,以下哪个选项是正确的
( C )
8、下面叙述中错误的是________。
( D )
9、若二维数组a 有m 列,则计算任一元素a[i][j] 在数组中位臵的公式为(假设a[0][0] 位于数组的第一个位臵上) ________。
( A )
10、以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
八、结构体 (共10题,每题1分,共计10分)
( D )
1、有以下定义和语句
struct workers
{
int num;
char name[20];
char c;
srruct
{
int day;
int month;
int year;
}
s;
};
struct workers w,*pw;
pw=&w 能给w 中year 成员赋1980 的语句是________。
( A )
2、若有下面的说明和定义:
struct test
{
int ml;
char m2;
float m3;
union uu
{
char ul[5];
int u2[2];
}
ua;
}
myaa;
则sizeof(struct test )的值是________。
( C )
3、设有以下说明语句 struct stu
{
int a ;
float b ;
}
stutype ;
则下面的叙述不正确的是______。
( B )
4、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
( C )
5、以下对结构体类型变量的定义中,不正确的是________。
( A )
6、下列选项中不属于c语言的数据类型是________。
( B )
7、下面关于主程序的说法,错误的是________。
( D )
8、有以下程序
typedef struct
{
int b,p;
}
a;
void f(a c) /* 注意:c是结构变量名 */
{
int j;
c.b+=1;
c.p+=2;
}
main()
{
int i;
a a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是______。
( C )
9、下面哪个不是关键字?
( A )
10、定义共用体的关键字是________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、有以下程序: void fun(int a,int b,int c)
{
a=456:b=567;
c=678;
}
main()
{
int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出的结果是________。
( A )
2、下面程序段执行结果是________。 int i=5; printf("%d,%d,%d", i,(++i)+(++i)+(i++),i);
( B )
3、有以下程序
main() {
int i, j,m =55;
for(i=l;i<3;i++) for(j=3;j<=++) m=m%j;
printf("%d\n",m);
}
程序的运行结果是________。
( B )
4、有以下程序
#include <stdio.h>
main()
{
char s[]={"012xy"};
int i,n=0;
for(i=0;s[i]!=0;i++) if(s[i]>'a'&&s[i]<='z') n++;
printf("%d\n",n);
}
程序运行后的输出结果是________。
( A )
5、执行下面程序后 , 运行结果是 __________.
#include <stdio.h>
void main( )
{
int x=41,y=1;
if (x%3==0 && x%7==0)
{
y+=x;
printf("y=%d\n",y);
}
else
{
y=x;
printf("y=%d",y);
}
}
( B )
6、有以下程序
main()
{
int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出的结果是________。
( B )
7、有以下程序int a=4;
int f(int n)
{
int t=0;
static int a=5;
if(n%2)
{
int a=6;
t+=a++;
}
else
{
int a=7;
t+=a++;
}
return t+a++;
}
main()
{
int s=a,i=0;
for(;i<2;i++) s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
( B )
8、有以下程序
main()
{
unsigned char a=2,b=4,c=5,d;
d=a|b;
d&=c;
printf("%d\n",d);
}
程序运行后的输出结果是______。
( C )
9、有以下程序
#include <stdio.h>
main()
{
char a=4;
printf("%d\n",a=a<<1);
}
程序的运行结果是______。
( B )
10、以下程序的输出结果是()。
main()
{ char s[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
相关标签:
- C语言
- 大理大学