西安美术学院往年C语言预测卷
本试卷为西安美术学院往年C语言预测卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言预测卷
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、以下叙述中正确的是________。
( A )
2、有定义:"int a=2,b=3,c=4;",则下列选项中值为0的表达式是________。
( A )
3、若有定义:int x,*pb;则正确的赋值表达式是________。
( D )
4、若变量c为char类型,能正确判断出c为小写字母的表达式是________。
( C )
5、设有int x=11;则表达式(x+1/3)的值是________。
( B )
6、若有定义int a=2; 则执行完语句a/=a*a; 后,a的值是________。
( B )
7、若需要利用形参直接访问实参,则应把形参变量说明为( )参数。
( A )
8、已知char a; int b; float c; double d; 则表达式a*b+c-d的结果为________。
( C )
9、以下叙述中不正确的是________。
( A )
10、已知:int n=10; 在下列定义引用的语句中,正确的是________。
( A )
11、以下选项中,与 n=i++ 完全等价的表达式是________。
( A )
12、以下非法的字符常量是________。
( D )
13、下列关于表达式的描述中,错误的是________。
( D )
14、已知字符 'a' 的ascii码为 97,执行下列语句的输出是____。
( C )
15、执行语句for(i=1;i<4;i++ ); 后变量i的值是________。
( C )
16、如下程序段运行输出的结果为________。 int a=5,b=6,c; c=++a+b--; printf("%d,%d,%d%\n",a,b,c);
( C )
17、下列关于指针变量的描述,不正确的是________。
( D )
18、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为__________。
( C )
19、下列语句的输出结果是()。 printf("%d\n",(int)(2.5+3.0)/3);
( C )
20、能将高级语言编写的源程序转换为目标程序的是()。
二、控制结构 (共10题,每题1分,共计10分)
( B )
1、下列表达式为关系表达式的为_________。(其中a为一整型变量)
( D )
2、下列描述正确的是________。
( A )
3、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
( A )
4、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
( C )
5、下列程序的输出结果是______。 #include<stdio.h> main() { int a=0,b=1,c=2; if(++a>0 || ++b>0) ++c; printf("%d,%d,%d",a,b,c); }
( A )
6、选择出合法的if语句(设int x,a,b,c;)________。
( B )
7、能正确表示a≥10或a≤0的关系表达式是________。
( D )
8、以下叙述中正确的是________。
( D )
9、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
( D )
10、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达 式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、若i、j已定义成int型,则下列程序段中内循环体的总执行次数是________。 for(i=6;i>0;i--) for(j=0;j<4;j++) { … }
( D )
2、下面程序的输出结果是 ____________. main( ) { int i,k=0, a=0, b=0; for(i=1;i<=4;i++) { k++; if (k%2==0) { a=a+k; continue; } b=b+k; a=a+k; } printf("k=%d a=%d b=%d\n",k,a,b); }
( B )
3、程序语言一般都提供多种循环语句,例如实现先判断循环条件再执行循环体的while语句和先执行循环体再判断循环条件的do-while语句。关于这两种循环结构,在不改变循环体的条件下, (17) 是正确的。
( D )
4、现有以下语句: i=1; for (;i<=100;i++) sum+=i;
( C )
5、在下列叙述中,正确的一条是______。
( C )
6、有以下程序 main() { int i; for(i=1;i<=40;i++) { if(i++%5==0) if(++i%8==0) pfintf("%d",i); } printf("\n"); } 执行后的输出结果是________。
( D )
7、分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=o; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }
( A )
8、若变量已正确定义,对以下while循环结束条件的准确描述是________。
( B )
9、以下有关switch语句的正确说法是________。
( C )
10、以下描述正确的是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( C )
1、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是________。 int t[3][3], *pt[3],k; for(k=0;k<3;k++) pt[k]= &t[k][0];
( D )
2、若有定义:int a[10],则对数组a元素的正确引用是________。
( C )
3、若有定义:int aa[ 8]; 则以下表达式中不能代表数组元aa[1]的地址的是________。
( D )
4、以下函数findmax拟实现在数组中查找最大值并作为函数值返回, 但程序中有错导致不能实现预定功能 #define MIN -2147463647 int findmax(int x[],int n) { int i,max; for(i=0;i<n;i++) { max=MIN; if(max<x[i]) max=x[i]; } return max; } 造成错误的原因是________。
( A )
5、设有如下程序段 char s[20]= "bejing",*p; p=s; 则执行p=s; 语句后,以下叙述正确的是________。
( D )
6、已知3个字符为:a、x和5,按它们的ascii码值升序排序,结果是________。
( A )
7、在数制的转换中,正确的叙述是______。
( A )
8、有以下程序: main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<a+10,p++)printf("%d,",*p); } 程序运行后的输出结果是________。
( C )
9、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
( B )
10、关于数组和指针,以下说法错误的是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、下列能正确进行字符串赋值的是________。
( D )
2、以下关于字符串的叙述中正确的是________。
( C )
3、以下不能将s所指字符串正确复制到t所指存储空间的是________。
( D )
4、以下能正确定义字符串的语句是________。
( C )
5、null是指 ________。
( B )
6、下列关于串的叙述中,哪一条是正确的( )
( B )
7、下列选项中c语言中不合法的字符串常量的是________。
( D )
8、有以下程序: #include<string.h> main() { char *p="abcde\0ghjik\0"; printf("%d\n",strlen(p) ); } 程序运行后的输出结果是________。
( C )
9、下列选项中,表示字符串末尾的结束标志是________。
( B )
10、下面选项中合法的字符常量是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、在函数中默认存储类型说明符的变量应该是________存储类型。
( A )
2、c语言中函数返回值的类型是由 决定的.
( D )
3、分析下面函数,以下说法正确的是______。 swap(int *p1,int *p2) { int *p; *p=*p1; *p1=*p2; *p2=*p; }
( C )
4、下面函数的功能是 char* fun(char* strl,char* str2) { while((*strl)&&(*str2++=*strl++)); return str2; }
( B )
5、以下叙述中正确的是________。
( C )
6、以下关于局部变量和全局变量的叙述错误的是________。
( C )
7、printf 函数中用到格式符%5s ,其中数字5 表示输出的字符串占用5 列。如果字符串长度小于5,则输出按方式。
( D )
8、以下叙述中正确的是________。
( C )
9、关于return语句,下列正确的说法是________。
( B )
10、C语言函数内定义的局部变量的隐含存储类别是
七、指针 (共10题,每题1分,共计10分)
( D )
1、若有如下定义,则________是对数组元素的正确的引用 int a[10], *p ; p=a;
( D )
2、若有如下定义语句: int a[10]= { 1,2,3,4,5,6,7,8,9,10 } ; 则对数组正确的引用是________。
( A )
3、若程序中定义了以下函数 double myadd(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是________。
( D )
4、若有以下定义和语句: double r=99 , *p=&r ; *p=r ; 则以下正确的叙述是______。
( D )
5、若有以下定义: int a[]= {1,2,3,4,5,6,7 }; char c1='b',c2='2'; 则数值不为2的表达式是________。
( B )
6、有以下程序: fun(int x,int y) { static int m=0, i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,"k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是________。
( A )
7、有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是________。
( D )
8、c语言中函数能否嵌套调用和递归调用?( )
( C )
9、下面正确的字符串常量是________。
( C )
10、char a[10]; 不能将字符串"abc"存储在数组中的是________。
八、结构体 (共10题,每题1分,共计10分)
( A )
1、c语言结构体类型变量在程序执行期间,________。
( 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); } 程序运行后的输出结果是________。
( D )
3、若有以下说明语句: struct student { int num; char name[ ]; float score; } stu; 则下面的叙述不正确的是: ( )
( D )
4、若有以下定义的语句 struct student { int age; int num; }; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; main() { struct student *p; p=stu; … }则以下不正确的引用是________。
( C )
5、以下程序的输出结果是 #include<stdio.h> struct st { int x; int *y; } *p; int dt[4]= {10,20,30,40 }; struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main() { p=aa; printf("%d\n",++(p->x)); }
( A )
6、c 语言中的基本数据类型包括
( D )
7、有如下定义: struct student { char name[10]; int age; char gender; } std[3], *p=std; 则以下各输入语句中错误的是________。
( B )
8、下面赋值表达式不正确的是__________________. struct student { long num; char name[20]; } st1, st2={101, "tom"}, *p=&st1;
( C )
9、static struct { int a1; float a2; char a3; } a[10]={1,3.5,'a'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
( C )
10、有以下程序 struct stu { char num[10]; float score[3]; }; main( ) { struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p; int i; float sum=0; p=s+2; for(i=0;i<3;i++)sum=sum+p->score[i]; printf("%6.2f\n",sum); } 程序运行后的输出结果是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、若有以下程序: void fun (float *a, float *b) { float w; *a = *a + *a; w = *a; *a = *b; *b = w; } main () { float x = 2, y = 3, *px = &x, *py = &y; fun (px, py); printf ("%2.0f,%2.0f\n", x, y); } 程序的输出结果是________。
( A )
2、执行下列程序段后的输出结果是 ___________. int x=1,y=1,z=1; x+=y+=z; printf("%d\n",x<y?y:x);
( A )
3、若运行下面程序时 , 给变量 a 输入 15, 则输出结果是 ________. #include <stdio.h> void main( ) { int a,b; scanf("%d",&a); b=a>15?a+10:a-10; printf("%d\n",b) ; }
( D )
4、以下程序输出的结果是 ___________. #include <stdio.h> void main( ) { char str[ ]=" 1a 2b 3c "; int i; for(i=0;str[i]!='\0';i++) if(str[i]>='0'&&str[i]<='9') printf("%c",str[i]); printf("\n"); }
( C )
5、以下程序输出的结果是 __________. #include <stdio.h> void main( ) { int a[ ]={5,4,3,2,1},i,j; long s=0; for(i=0;i<5;i++) s=s*10+a[i]; printf("s=%ld\n",s); }
( B )
6、下面程序段执行结果是________。 int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);
( B )
7、下面程序的输出结果是______。 main( ) { int b[]={1,2,3,4,5,6,7,8,9,0},*q; q=b; printf("%d\n",*(q+0)); }
( B )
8、如下程序,要想输出结果为ab,那么输入应该为 void main() { char a; char b; scanf("%c%c",&a,&b); printf("%c%c",a,b); }
( C )
9、下列语句输出结果是________。 long a=0xffff; int b=a; printf( "%d",b);
( C )
10、以下程序段的执行结果是________。 double x; x=218.82631; printf("%-6.2e\n",x);
相关标签:
- C语言
- 西安美术学院
- 预测卷