山西农业大学C语言程序设计期末
本试卷为山西农业大学C语言程序设计期末,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计期末
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、交换两个变量的值,不允许用临时变量,应该使用下列( )位运算符。
( D )
2、设变量已正确定义,则以下能正确计算f=n!的程序是________。
( D )
3、下面哪一个不是字符常量________。
( A )
4、下列语句中,正确的是________。
( D )
5、设有如下程序段: int x=2002, y=2003; printf("%d\n",(x,y));
则以下叙述中正确的是________。
( A )
6、在c语言中,形参的缺省存储类是________。
( D )
7、以下不正确的 c 语言标识符是______。
( A )
8、已知各变量的类型说明如下,则以下不符合 c 语言语法的表达式是: 。 int k,a,b; unsigned long w=5; double x=1.422;
( D )
9、下列对程序解决问题的过程描述中,哪项是正确的( )
( D )
10、设int a=0; 错误的语句是________。
( D )
11、判断字符型变量ch是否为大写英文字母,应使用表达式
( A )
12、下列选项中,合法的c语言关键字是________。
( B )
13、与十六进制数cd等值的十进制数是________。
( A )
14、以下选项中,合法的实数是________。
( C )
15、表达式的值为0的是________。
( C )
16、下列描述中,正确的是________。
( C )
17、下列程序段的输出是____。int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);
( B )
18、以下说法正确的是________。
( D )
19、若变量c定义为float型变量,能给变量c正确赋值的语句是________。
( B )
20、以下正确的说法是()。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
( D )
2、能正确表示a和b同时为正或同时为负的逻辑表达式是________。
( C )
3、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( A )
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);
}
执行后输出结果是________。
( A )
7、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
( C )
8、以下程序的输出结果是________。
#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);
}
( B )
9、有以下程序
#include <stdio.h>
main ()
{
int a = 5, b = 4, c = 3, d = 2;
if (a > b > c)
printf ("%d\n", d);
else if ((c - 1 >= d) == 1)
printf ("%d\n", d + 1);
else
printf ("%d\n", d + 2);
}
执行后输出的结果是________。
( A )
10、选择出合法的if语句(设int x,a,b,c;)________。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、有以下程序:
main()
{
int i,j;
for(j=10;j<11;j++)
{
for(i=9;i<j;i++) if(!(j%i))break;
if(i==j-1) printf("%d",j);
}
}
输出结果是________。
( C )
2、下面程序的运行结果是________。
main( )
{
int m=7,n=5,i=1;
do
{
if (i%m==0);
if (i%n==0)
{
printf("%d\n",i);
break;
}
i++;
}
while(i!=0);
}
( D )
3、可以作为自定义标识符的是________。
( B )
4、下面不属于算法的控制结构的是______ 。
( D )
5、结构化程序设计方法的结构不包括________。
( A )
6、for循环的循环次数________。
( D )
7、下面有关for循环的正确描述是________。
( C )
8、有以下程序
main()
{
int i;
for(i=1;i<=40;i++)
{
if(i++%5==0) if(++i%8==0) pfintf("%d",i);
}
printf("\n");
}
执行后的输出结果是________。
( C )
9、下面的代码int i=10; 之后的for循环语句,语法正确,不会编译出错的是________。
( B )
10、若有程序段:x=99; while(x-2) x--; 则循环结束时,x=________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( A )
1、若有定义:"int a[2][3];",则对a数组的第i行第j列元素的正确引用为( )。
( A )
2、在c语言中对于实型数组,其每个数组元素的类型是________。
( B )
3、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( B )
4、若有定义:int a[4][10]; 则以下选项中对数组元素a[i][j]引用错误的是______。 (0<=i<4,0<=j<10)
( B )
5、设矩阵a是一个n×n对称矩阵.即a[i,j]=a[i,j],为了节省存储空间,将其下三角部分按行序为主序存放在一维数b[1...n(n+1)/2]中,对任一下三角元素aij(i≥j),在一维数组b的下标位置k的值是______。
( B )
6、c语言中,数组名代表________。
( B )
7、若有定义语句:double x[5]= {1.0,2.0,3.0,4.0,5.0 }, *p=x;
则错误引用x数组元素的是______。
( B )
8、以下能正确定义一维数组的选项是________。
( B )
9、已有以下数组定义和f 函数调用语句, 则在f 函数的说明中,对形参数组array 的错误定义方式为________。int a[3][4]; f(a);
( A )
10、下列数组说明中,正确的是()。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、c语言中,下列不合法的字符串常量是________。
( D )
2、以下选项中能表示合法常量的是________。
( D )
3、下列关于boolean类型的叙述中,正确的是________。
( B )
4、下列选项中,值为1的表达式是________。
( B )
5、下列类型的数据不可以存储在可变型变量中的是________。
( B )
6、设有以下程序段: int a[5]=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是________。
( C )
7、下列表达式中,类型可以作为int型的是________。
( D )
8、下列字符串中可以用作c标识符的是________。
( C )
9、\、/、mod、*等4个算术运算符中,优先级最低的是________。
( A )
10、下面不正确的字符串常量是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、有以下程序 char fun(char x , char y)
{
if(x<y) return x;
return y;
}
main( )
{
int a=’9’,b=’8’,c=’7’;
printf("%c\n",fun(fun(a,b),fun(b,c)));
}
程序的执行结果是________。
( D )
2、在说明语句:int *f( ); 中,标识符f代表的是________。
( A )
3、以下函数调用语句中实参的个数为 。 exce((v1,v2),(v3,v4,v5),v6);
( A )
4、当接受用户输入的含有空格的字符串时,应使用 __________ 函数 .
( A )
5、c 语言规定,除主函数外,程序中各函数之间 ______.
( D )
6、下列说法正确的是________。
( B )
7、有以下程序
#include<string.h>
main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcat(p,r);
strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是________。
( A )
8、以下程序运行后,输出结果是
#define PT 5.5
#define S(x) PT*x*x
#include<stdio.h>
main()
{
int a=1,b=2;
printf("%4.1f\n",s(a+b));
}
( B )
9、有以下程序段若要给 c1、c2、c3 分别输入字母a,b,c,则以下对输入形式的描述正确的是________。
( C )
10、在c语言中,调用函数除函数名外,还必须有________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、有如下程序 int a[10]= { 1,2,3,4,5,6,7,8,9,10 }; int*p=&a[3],b; b=p[5]; 则b的值是________。
( D )
2、若有以下说明和语句: int c[4][5],(*p)[5]; p=c; 能够正确引用c数组元素的是________。
( D )
3、下列说法不正确的是________。
( C )
4、以下叙述中正确的是________。
( A )
5、以下叙述中正确的是______。
( C )
6、要调用数学函数时,在 #include命令行中应包含____。
( C )
7、若x为int型变量,则以下函数fun的类型为________。
fun(x)
{
printf("%d\n",x);
}
( C )
8、以下叙述中正确的是________。
( C )
9、以下与库函数strcmp(char*s,char*t) 的功能相等的程序段是________。
( C )
10、以下叙述中错误的是________。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、若有以下语句:
typedef struct s
{
int g;
char h;
} t;
以下叙述中正确的是________。
( D )
2、有以下程序
#include <stdio.h>
struct tt
{
int x;
struct tt*y;
}
*p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{
int i;
p=a;
for(i=1;i<=2,i++)
{
printf("%d,",p->x);
p=p->y;
}
}
程序的运行结果是________。
( B )
3、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu {
int i;
int name;
} st,*p; p=&st;
( C )
4、有以下程序段
typedef struct node
{
int data;
struct node * next;
}
* node;
node p;
以下叙述中正确的是________。
( A )
5、设有如下说明:
typedef struct
{
int n;
char c;
double x;
}
std;
则以下选项:能正确定义结构体数组并赋初值的语句是________。
( B )
6、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
( B )
7、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
( A )
8、当定义一个结构体变量时,系统分配给它的内存是________。
( D )
9、在说明一个结构体变量时系统分配给它的存储空间是________ 。
( A )
10、在C语言中,下面那种数据类型不属于构造类型____
九、程序题 (共10题,每题1分,共计10分)
( C )
1、若有下列定义和语句: int u=011,v=0x11,w=11; printf("%o,%x,%d\n",u,v,w): 则输出结果是________。
( D )
2、阅读下面的程序
#include<stdio.h>
main()
{
char c1,c2;
c1=getchar();
c2=c1+3;
printf("%c,%d\n",c2,c2);
}
已知'a'的ascii的值为65,如果从键盘上输入 d<回车> 则程序的运行结果是________。
( C )
3、以下程序
#include <stdio.h>
#define SUB(a) (a)-(a)
main()
{
int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序运行后的结果是________。
( C )
4、以下程序段的输出结果是 int a=1234; printf("%2d\n",a);
( B )
5、有以下程序
#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);
}
程序运行后的输出结果是________。
( D )
6、运行下面程序后 , 输出是 ________.
#include <stdio.h>
void main( )
{
int k=-3;
if (k<=0) printf("****\n");
else printf("####\n")
}
( B )
7、以下程序的输出结果是______。
main()
{
char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
int i ;
i=5;
p=a+i;
printf("%s\n",p-1);
}
( D )
8、运行下列程序时,若输入的数据为“1,2,3”,则输出结果是________。
main()
{
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a<b)
{
t=a;
a=b;
b=t;
}
if(a<c)
{
t=a;
a=c;
c=t;
}
if(b<c)
{
t=b;
b=c;
c=t;
}
printf("%f %f %f ",a,b,c);
}
( A )
9、下述程序的输出结果是________。
#include<stdio.h>
void main()
{
printf("%f",2.5+1*7%2/4);
}
( A )
10、以下程序的输出结果是________。
main( )
{
int i=010, j=10, k=ox10;
printf(''%d,%d,%d\n'',i,j,k);
}
相关标签:
- C语言
- 山西农业大学
- 期末