安徽理工大学计算机C语言精选样卷
本试卷为安徽理工大学计算机C语言精选样卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言精选样卷
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、若变量a、i已正确定义,且i已正确赋值合法的语句是________。
( D )
2、设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是________。
( D )
3、下列选择中,不能用做标识符的是________。
( C )
4、在下列选项中,不正确的表达式是________。
( B )
5、下面关于指针的说法中错误的是________。
( D )
6、若有语句int*point,a=4; 和point=&a; 下面均代表地址的一组选项是________。
( D )
7、若有表达式(w)(--x):(++y),则其中与w等价的表达式是________。
( B )
8、现有定义int a; double b; float c; char k; 则表达式a/b+c-k值的类型为
( C )
9、下面单位换算中,正确的是________。
( C )
10、下列叙述中不正确的是________。
( B )
11、在位运算中,操作数每右移一位,其结果相当于( )
( B )
12、一个字长为8位的无符号二进制整数能表示的十进制数值范围是________。
( D )
13、若有说明:int *p,m=5,n; 以下正确的程序段是________。
( D )
14、设有声明"int p[10]={1,2}
,i=0;
",以下语句中与"p[i]=p[i+1],i++;
"等价的是___________。
( A )
15、表达式if(!x)中的"!x"等效于( )
( C )
16、该语句打印结果为(每个d后都有空格)printf("%d ", printf("%d ", printf("%d ", 43)));
( C )
17、以下符合c语言语法的实型常量是________。
( D )
18、以下选项中正确的 c 语言常量是________。
( B )
19、设 C语言中,int 类型数据占 2 个字节,则 short 类型数据占()。
( C )
20、以下选项中合法的实型常数是()。
二、控制结构 (共10题,每题1分,共计10分)
( C )
1、在嵌套使用if语句时,c语言规定else总是________。
( D )
2、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( D )
3、三种基本结构中,能简化大量程序代码的是________。
( C )
4、下列说法中不正确的是________。
( A )
5、下列程序的运行结果是________。
main()
{
int a=-5,b=1,c=1;
int x=0,y=2,z=0;
if(c>0)x=x+ y;
if(a<=0)
{
if(b>0) if(c<=0)y=x-y;
}
else if(c>0)y=x-y;
else z=y;
printf("%d,%d,%d\n",x,y,z);
}
( C )
6、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是________。
( D )
7、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
( B )
8、c语言中,关系表达式和逻辑表达式的值是________。
( C )
9、下列if语句中,不正确的是________。
( B )
10、以下叙述中正确的是________。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、以下程序的输出结果是
#include <stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0) break;
else i--;
}
i+=11;
a+=i;
}
printh("%d\n",a);
}
( D )
2、下面程序段的运行结果是 _____________.
for(i=1;i<=5;)
printf("%d",i);
i++;
( C )
3、有如下程序
#include<stdio.h>
void main( )
{
int i,sum=0;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是 _____________.
( B )
4、t为int类型,进入下面的循环之前,t的值为0。while(t=1) {...}则以下叙述中,正确的是________。
( D )
5、在c语言中,while和do…while循环的主要区别是________。
( B )
6、以下选项中与if(a==1)a++; else a=b; 语句功能不同的语句是________。
( A )
7、下列程序的运行结果是________
#include<stdio.h>
main()
{
int x=5,a=1,b=2,c=5,d=0;
if(a<b) if(b!=3) if(!c) x=1;
else if(d) x=l;
else x=-1;
printf("%d",x);
}
( B )
8、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是________。
( C )
9、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
( C )
10、以下叙述中错误的是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、若二维数组a有m列,则在a[i][j]前的元素个数为( )。
( C )
2、以下关于数组的描述正确的是______。
( D )
3、以下数组定义中不正确的是 __________.
( B )
4、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
( D )
5、设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]= {0,1,2,3,4,5,6,7,8,9 },*p=a;
( D )
6、下面对二维数组array的定义,正确的是________。
( B )
7、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是________。
( B )
8、下列关于字符串的说法中错误的是________。
( A )
9、对于定好的数组,系统会自动为该数组分配内存空间,char c[20]= { "hello world" }对于c对应的内存中的地址编号是2000,则c[4]对应的内存地址的编号为________。
( D )
10、设有下面的程序段:char s[]="china"; char *p=s; 则下列叙述正确的是____。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
( D )
2、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
( C )
3、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( A )
4、下列字符串是标识符的是: 。
( D )
5、如果在一个运算表达式中包含有逻辑运算、关系运算和算术运算,并且其中未用圆括号规定这些运算的先后顺序,那么这样的综合型表达式的运算顺序是______。
( C )
6、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是________。
#include<stdio.h>
main()
{
char sl[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]=s2[i]&&i<7) ____________________;
}
( B )
7、以下关系表达式中,其值为true的是________。
( C )
8、顺序执行下列程序语句后,则b的值是 string a="hello"; string b=a.substring(0,2);
( C )
9、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( A )
10、char a[]="This is a program.";输出前 5 个字符的语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、没有如下定义: int(*ptr)(); 则以下叙述中正确的是________。
( C )
2、若有函数max(a,b),为了让函数指针变量p指向函数max,当调用该函数时,正确的赋值方法是________。
( B )
3、以下叙述中正确的是________。
( B )
4、下面的描述中错误的是________。
( A )
5、下列程序的输出结果是________。
int f1(int x,int y)
{
return x>y?x:y;
}
int f2(int x,int y)
{
return x>y?y:x;
}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
( B )
6、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________。
main()
{
int *p,*q,a,b;
p=&a;
printf("input a:");
scanf("%d",*p);
}
( D )
7、函数调用结束后,形式参数( )
( B )
8、c语言源程序的基本单位是________。
( B )
9、c语言中不可以嵌套的是________。
( C )
10、以下函数的返回类型是______。 fff(float x)
{
return 5.86;
}
七、指针 (共10题,每题1分,共计10分)
( C )
1、定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9
};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]);的输出结果是________。
( A )
2、下列字符串是标识符的是________。
( A )
3、若有定义语句: int a[4][10],*p,*q[4]; 且0<=i<4,则错误的赋值是________。
( C )
4、若有说明语句"int a[5],*p=a; ",则对数组元素的正确引用是________。
( A )
5、以下函数调用语句中实参的个数为 。 exce((v1,v2),(v3,v4,v5),v6);
( C )
6、若有定义:int a=4,b=5; float x=3.4,y=2.1; 则下列表达式的值为________。 (float)(a+b) /2+(int)x%(int)y
( C )
7、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
( C )
8、以下程序运行后,如果从键盘上输入abcdef<回车>,则输出结果为______。
#include<stdio.h>
#include<string.h>
func(char str[]) {
int num=0;
while(*(str+num)!=’\0’) num++;
return(num);
}
main()
{
char str[10],*p=str;
gets(p);
printf("%d\n",func(p));
}
( B )
9、数组定义为 int a[3][2]={ 1, 2, 3, 4, 5, 6 },数组元素( )的值为6。
( B )
10、有以下程序
void f (int b[])
{
int i;
for(i=2;i<6;i++) b[i]* =2;
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node*next;
}
a,b,*p=&a,*q=&b;
( D )
2、有以下程序
struct stu
{
int num;
float totalscore;
};
void f(struct stu p)
{
struct stu s[2]= {{20044,550}, {20045,537}};
p.num = s[1].num;
p.totalscore = s[1].totalscore;
}
main()
{
struct stu s[2]= {{20041,703} ,{20042,580}};
f(s[0]);
printf("%d %3.0f\n", s[0].num, s[0].totalscore);
}
程序运行后的输出结果是________。
( B )
3、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( D )
4、设有下面的定义:
struct st
{
int a;
float b;
} d;
int*p;
要使p指向结构变量d中的a成员,正确的赋值语句是________。
( A )
5、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
( B )
6、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node *next;
}
a,b,*p=&a,*q=&b;
( A )
7、有以下程序
struct s
{
int n;
int a[20];
};
void f(int *a,int n)
{
int i;
for(i=0;i<n-1;i++)a[i]+=i;
}
main()
{
int i;
struct s s={10,{ 2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0; i<s.n; i++)printf("%d,",s.a[i]);
}
程序运行后的输出结果是________。
( B )
8、下列程序的输出结果是________。
#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 )
9、以下程序的输出结果是______。
struct har
{
int x,y;
struct har *p;
}
h[2];
main()
{
h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=&h[1];
h[1].p=h;
printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);
}
( A )
10、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若要使p指向data中的a域,正确的赋值语句是________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、若执行以下程序时从键盘上输入9,则输出结果是
main()
{
int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
( D )
2、有以下程序(说明:字母a的ascil码值是65):
void fun(char*s)
{
while(*s)
{
if(*s%2)printf("%c",*s);
s++;
}
}
main()
{
char a[]="byte";
fun(a);
printf("\n");
}
程序运行后的输出结果是________。
( D )
3、以下程序段的输出结果是________。
int k,j,s;
for(k=2;k<6;k++,k++)
{
s=1;
for(j=k;j<6;j++) s+=j;
}
printf("%d\n",s);
( D )
4、有以下程序
#include<stdio.h>
int f(int x);
main() {
int n=1,m;
m=f(f(f(n)));
printf("%d\n",m);
}
int f(int x) {
return x*2;
}
程序运行后的输出结果是________。
( A )
5、运行下面程序段的输出结果是 __________. char s1[10]={'s','e','t','\0','u','p','\0'}; printf("%s",s1);
( D )
6、下述程序段的执行结果是________。
#include <stdio.h>
void main() {
int x;
for(x=1;x<=100;x++) if(++x%3==0) if(++x%4==0) if(++x%7==0) printf("%d",x);
}
( D )
7、下面程序
void prtv(int *x)
{
printf("%d\n",++*x);
}
main()
{
int a=25;
prtv(&a);
}
的输出是______。
( D )
8、下面程序的输出是______。
main( )
{
int t=1;
fun ( fun ( t) );
}
fun ( int h)
{
static int a[3]={1,2,3};
int k;
for (k=0;k<3;k++)a[k]+=a[k]-h;
for (k=0;k<3;k++)printf("%d,",a[k]);
printf("\n");
return(a[h]);
}
( B )
9、有以下程序
void f(int *q)
{
int i=0;
for( ;i<5;i++) (*q)++;
}
main()
{
int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
( B )
10、下面程序段的运行结果是________。char c[5]={'a','b','\0','c','\0'}; printf("%s",c);
相关标签:
- C语言
- 安徽理工大学
- 精选样卷