青岛农业大学2022年C语言专升本模拟考试
本试卷为青岛农业大学2022年C语言专升本模拟考试,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言专升本模拟考试
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、若有定义:"int a=4,b=5; float x=3.4,y=2.1; ",则下列表达式的值为( )。 (float)(a+b)/2+(int)x%(int)y;
( B )
2、c语言中的简单数据类型有( )。
( B )
3、以下不能输出字符a的语句是(注:字符a的ascil码值为65,字符a的ascil码值为97)( )。
( C )
4、已知x=43,ch='a',y=0,则表达式(x>=y&&ch<'b'&&!y)的值是________。
( D )
5、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是________。
( B )
6、c 语言共用体类型变量在程序运行期间 。
( B )
7、下面各选项中,均是c语言合法标识符的选项组是________。
( D )
8、关于字符常量,以下叙述正确的是________。
( B )
9、下列形式的常数中,不符合c语言语法规范的是______。
( B )
10、在下列的标识符中,错误的是________。
( A )
11、若w、x、y、z、m均为int型变量,则执行下列的语句后m的值是________。 w=2,x=3,y=4,z=5; m=(w<x) ? w:x; m=(m<z) ? m:z; m=(m<y) ? m:y;
( C )
12、列关于计算机中数的表示的叙述中,错误的是________。
( D )
13、在c语言中,数字029是一个( )
( B )
14、下列语句合法的是________。
( B )
15、为表示关系x>y>z ,应使用的c 语言表达式是________。
( B )
16、下列各语句序列中,能够将变量u.s 中最大值赋值到变量t 中的是________。
( B )
17、c 语言源程序的扩展名为
( A )
18、以下数据中,不正确的数值或字符常量是________。
( A )
19、指针变量p进行自加运算(即 执行p++;)后,地址偏移值为4,则其 数据类型为________。
( A )
20、表达式 strlen("\x69\082\n")的值是________。
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、c语言对嵌套的if语句的规定是:else总是与 配对。
( D )
2、若int i=10; 执行下列程序后,变量i的正确结果是________。 switch (i) { case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; }
( C )
3、当从键盘上输入字符"12134211"下面程序的 输出结果是________。 main( ) { char s; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;k<=7;k++) { scanf("%c",&s); switch(s) { default: v4++; case '1': v1++; case '3': v3++; case '2': v2++; } } printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
( C )
4、以下程序的输出结果是________。 #include<stdio.h> main() { int a=1,b=3; if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b); else printf("%d,%d\n",b,a); }
( C )
5、下列if语句中,不正确的是________。
( B )
6、以下叙述中正确的是________。
( C )
7、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( A )
8、c语言的if语句中,用作判断的表达式为____
( B )
9、将三个数排序需要比较________次。
( C )
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是________。
( B )
2、若变量已正确定义,有以下程序段 i=0; do printf("%d,"i); while(i++); printf("%d\n",i); 其输出结果是________。
( A )
3、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
( D )
4、已知:int a,b; 下列switch语句中,( )是正确的。
( D )
5、在c语言中,while和do…while循环的主要区别是________。
( B )
6、以下选项中与if(a==1)a=b; else a++; 语句功能不同的switch语句是________。
( B )
7、下列说法中正确的是________。
( B )
8、有如下程序 #define N 4 #define M N+2 #define NUM 2*M+1 main() { int i; for(i=1;i<=NUM;i++)printf("%d\n",i); } 该程序中的for循环执行的次数是______。
( A )
9、设有循环语句"for(i=1;i>0;i++) i++; ",其循环执行的次数是________。
( A )
10、定义如下变量:int n=10; 则下列循环的输出结果是________。 while(n>7) { n--; printf(''%d'',n); }
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、若数组a定义为int[][]a=new int[3][4],则a是________。
( B )
2、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( D )
3、在下面语句中,其含义为"p为指向含n个元素的一维数组的指针变量"的定义语句是________。
( B )
4、已知:int a[2][3]; 则对数组元素的非法引用是________。
( C )
5、假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是________。double length [10];
( B )
6、c语言中数组下标的下限是________。
( B )
7、对长度为 8 的数组进行快速排序,最多需要的比较次数为________。
( B )
8、若有定义语句:double x[5]= {1.0,2.0,3.0,4.0,5.0 }, *p=x; 则错误引用x数组元素的是______。
( B )
9、int (*p)[6]; 它的含义为________。
( B )
10、有语句char str1[10],str2[10]={"china"}; 则能将字符串china赋给数组str1的正确语句是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、以下不能将s所指字符串正确复制到t所指存储空间的是________。
( C )
2、对下述程序的判断中,正确的是________。 main() { char*p,s[256]; p=s ; while(strcmp(s,"the end")) { printf("input the string:"); gets(s); while(*p) putchar(*p++); } }
( C )
3、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是________。
( B )
4、设宏定义#define PI 3.1415926,用宏名PI替换的是________。
( B )
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]); } 程序运行结果是________。
( A )
8、下列对字符串的定义中,错误的是________。
( D )
9、下面关于编译预处理命令,正确的是________。
( D )
10、若有char s1[]="abc",s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串 s1 大于字符串 s2 时,输出 s2 的语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、有一函数, ,以下程序段中不能根据x值正确计算出y值的是________。
( A )
2、对于 c 语言的函数,下列叙述中正确的是 ______ __.
( B )
3、一个c语言程序是由
( C )
4、若定义的函数为float* fun()……,则函数的返回值是________。
( C )
5、下面正确的函数定义形式为________。
( B )
6、有以下程序 #include<stdio.h> int fun(int a,int b) { if(b=0)return a; else return(fun(--a,--b)); } main() { printf("%d\n",fun(4,2)); } 程序的运行结果是________。
( D )
7、设函数定义如下: float f1(float a,float b) { return(a+b); } 若有float x=1.1,y=2.2; ,则以下语句中正确的函数调用是________。
( C )
8、设有以下语句:char str1[]="string",str2[8],*str3,*str4="string"; 则下列选项中,______不是对库函数strcpy的正确调用,此库函数用来复制字符串。
( D )
9、以下叙述中正确的是________。
( D )
10、函数的形式参数隐含的存储类型说明是________。
七、指针 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义一维数组的选项是________。
( D )
2、下列选项中,能正确定义数组的语句是________。
( D )
3、若有如下定义语句: int a[10]= { 1,2,3,4,5,6,7,8,9,10 } ; 则对数组正确的引用是________。
( D )
4、有以下程序 #include <stdio.h> void fun(int *a, int n)/*fun函数的功能是将a所指数组元数从大到小排序*/ { int t,i,j; for(i=o;i<n-1;j++) for(j=j+1;j<n;j++) if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } main() { int c[10]={1,2,3,4,5,6,7,8,9,0} ,i; fun(c+4,6); for(i=0;i<10,i++) printf("%d,",c[i]); } 程序的运行结果是________。
( D )
5、若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( )
( D )
6、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( D )
7、下列关于boolean类型的叙述中,正确的是________。
( A )
8、以下说法错误的是________。
( B )
9、若有说明: static int a[3][4]; 则数组中各元素________。
( A )
10、如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是________。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、已知有如下结构体: struct sk { int a; float b; } data,*p; 若有p = &data,则对data的成员a引用正确的是________。
( A )
2、程序中有下面的说明和定义 struct abc { int x ; char y ; } struct abc s1 , s2 ; 则会发生的情况是______。
( D )
3、有如下定义 struct person { char name[9] ; int age ; }; struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16}; 根据上述定义,能输出字母 m 的语句是______。
( C )
4、设有如下枚举类型定义: enum language { basic=3 , assembly , ada=100 , cobol , fortran }; 枚举量 fortran 的值为 。
( A )
5、以下结构体类型说明和变量定义中正确的是________。
( C )
6、若定义下列结构体,结构体变量p的出生年份赋值正确的语句是________。 struct st { int x; int y; int z; } struct worker { char name[20]; char sex; struct st birth; } p;
( C )
7、以下程序运行后的输出结果是 #include<stdio.h> struct st { int x, y; } data[2] = {{1, 10},{2, 20}}; main () { struct st *p = data; printf ("%d,", p->y); printf ("%d\n", (++p)->x); }
( D )
8、有以下程序: #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)); } 程序运行后的输出结果是______。
( D )
9、有以下程序 #include <stdio.h> main() { struct stu { char name[9]; char sex; double score[2]; } ; struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0}; b=a; printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]); } 程序的运行结果是______。
( A )
10、当定义一个结构体变量时,系统分配给它的内存是________。
九、程序题 (共10题,每题1分,共计10分)
( D )
1、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]= {{1,2,3,4} ,{0,2,4,5} ,{3,6,9,12} ,{3,2,1,0}}; printf("%d\n",f(a)); } 执行后的输出结果是________。
( D )
2、有以下程序 #include <stdio.h> main() { int a=1,b=0; printf("%d,",b=a+b); printf("%d",a=2*b); } 程序运行后的输出结果是________。
( D )
3、运行下面程序后 , 输出是 ________. #include <stdio.h> void main( ) { int k=-3; if (k<=0) printf("****\n"); else printf("####\n") }
( B )
4、若x=2,y=3,则x&y的结果是________。
( A )
5、下列语句执行后的结果是________。 y=5; p=&y; x=*p++;
( A )
6、已知字母a的ascii码为十进制数65,下面程序的输出结果是________。 main( ) { char ch1,ch2; ch1=a+5-3; ch2=a+6-3; printf("%d,%c\n",ch1,ch2); }
( A )
7、有以下程序: main() { char a,b,c,d; scanf("%c,%c,%d,%d",&a,&b,&c,&d); printf("%c,%c,%c,%c\n",a,b,c,d); } 若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是 ______。
( A )
8、有以下程序段 #include<stdio.h> int a,b,c; a=10; b=50; c=30; if(a>b)a=b,b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c); 程序的输出结果是______。
( A )
9、以下程序的输出结果为______。 #include<stdio.h> main() { int m=7,n=4; float a=20.0,b=10.0,x; x=m/2+n*a/b+1/4; printf("%f\n",x); }
( D )
10、有如下程序 main( ) { int a[3][3]={{1,2,3},{3,4,5},{5,6,7}}, i,j,s = 0; for(i=0; i<3; i++)for(j=0; j<=i; j++) s+=a[i][j]]; printf("%d\n",s); } 该程序的输出结果是______。
相关标签:
- C语言
- 青岛农业大学
- 专升本模拟考试