安徽理工大学2023年C语言程序设计复习题
本试卷为安徽理工大学2023年C语言程序设计复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计复习题
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、若变量已正确定义,在语句"if(w)printf("%d\n",k);"中,以下不可替代w的是________。
( C )
2、执行语句"x=(a=3,b=a--)"后,x,a,b的值依次为________。
( B )
3、设x为int型变量,则执行语句x=10和x+=x-=x-x后,x的值为:
( C )
4、以下选项中可作为c语言合法整数的是________。
( B )
5、设int a=10,b= 11,c=12; 表达式( a + b) < c & &b==c的值是________。
( C )
6、执行下列语句后,i和n的值为 ( ) int i=10; int n=i++%5;
( B )
7、条件语句________。
( A )
8、以下不能用于实型数据的运算符是________。
( B )
9、设ch是char型变量,其值为a,且有下面的表达式ch=(ch>='a'&&ch<='z')?(ch+32):ch 。上面表达式的值是______。
( C )
10、下列描述中,正确的是________。
( A )
11、若x是double型变量,n是int型变量,执行以下语句( ),并输入3 1.25后,x的值是1.25,n的值是3。。
( B )
12、运行下述程序段后, i 值为4 的是________。
( B )
13、已有定义: int x=3,y=4,z=5; 则表达式 !(x+y)+z-1&&y+z/2 的值是________。
( A )
14、已知 int i,a; 执行语句"i=(a=2*3,a*5),a+6; "后,变量a的值是________。
( B )
15、c 语言 double 中类型数据占字节数为________。
( A )
16、以下数据中,不正确的数值或字符常量是________。
( A )
17、char a1[]="abc",a2[80]="1234"; 将a1串连接到a2串后面的语句是________。
( D )
18、在c语言中,char型数据在内存中的存储形式是________。
( B )
19、执行以下语句后,a,b,c 的值分别为________。 int a,b,c; a=b=c=1; ++a||++b&&++c;
( A )
20、以下叙述中错误的是
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( C )
2、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
( C )
3、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d)y=0; else y=1; 该语句所表示的含义是________。
( A )
4、下列程序的输出结果是________。
main()
{
int a=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
( D )
5、若int i=10;
执行下列程序后,变量i的正确结果是________。 switch (i)
{
case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
( A )
6、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
( D )
7、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( A )
8、下列程序的运行结果是________。
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);
}
( A )
9、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
( B )
10、以下叙述中正确的是________。
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、下列叙述中正确的是________。
( C )
2、以下说法中不正确是________。
( C )
3、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( A )
4、下列程序是死循环的是________。
( B )
5、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是________。
( A )
6、若有以下程序
#include<stdio.h>
main() {
int a=6,b=0,c=0;
for(;a;) {
b+=a;
a-=++c;
}
printf("%d,%d,%d\n",a,b,c);
}
则程序的输出结果是______。
( D )
7、以下程序的输出结果是______。
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10) break;
if(b%3==1)
{
b+=3;
continue;
}
}
printf("%d\n",a);
}
( D )
8、以下的 for 循环次数是多少次? for(x=0,y=0;(y!=123)|| (x<4);x++) ;
( D )
9、下列语句哪些不属于循环语句?
( C )
10、下面程序的运行结果是________。
main( )
{
int cl=2,c2=0;
while(!c2--)printf(''%d%d'',cl--,c2);
}
四、数组/指针数组 (共10题,每题1分,共计10分)
( C )
1、以下函数按每行8个输出数组中的数据
void fun( int *w, int n)
{
int i;
for(i=0;i<n;i++)
{
________ printf("%d",w[i]);
}
printf("\n");
}
下列划线处应填入的语句是________。
( C )
2、若在某函数内部有定义:int a[3][4]; 则数组a中各元素________。
( D )
3、已知3个字符为:a、x和5,按它们的ascii码值升序排序,结果是________。
( A )
4、下面程序的运行结果是
#include<stdio.h>
main()
{
static char a[]="languagef" ,b[]="programe";
char *p1,*p2;
int k;
p1=a;
p2=b;
for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
( C )
5、下面程序的运行结果是
#include<stdio.h>
main()
{
int a=28,b;
char s[10],*p;
p=s;
do
{
b=a%16;
if(b<10) *p=b+48;
else *p=b+55;
p++;
a=a/5;
}
while(a>0);
*p='\0';
puts(s);
}
( D )
6、若有说明语句 char a[ ]="it is mine"; char *p="it is mine"; 则以下不正确的叙述是________。
( C )
7、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s);
其输出结果为________。
( A )
8、以下程序中的函数reverse的功能是将a所指数组中的内容进行逆置。
void reverse(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
}
main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
int i,s=0;
reverse(b,8);
for(i=6;i<10;i++) s+=b[i];
printf("%d\n",s);
}
程序运行后的输出结果是______。
( A )
9、下面说法正确的是________。
( B )
10、对长度为 8 的数组进行快速排序,最多需要的比较次数为________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
( A )
2、下列字符串是标识符的是________。
( D )
3、以下选项中能表示合法常量的是________。
( D )
4、以下正确的字符串常量是________。
( A )
5、下列字符串是标识符的是: 。
( D )
6、表达式x+1>x是________。
( C )
7、以下能将字符串,you are luck!正确读入的语句组是________。
( B )
8、下列数据中属于"字符串常量"的是________。
( D )
9、在宏定义#define PI 3.14159中,用宏名代替一个________。
( A )
10、下面不能正确进行字符串赋值操作的语句是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、设fun()函数的定义形式为 void fun(char ch,float x) {…}则下列对函数fun的调用语句中,正确的是________。
( A )
2、c程序的执行是从( )开始执行的
( A )
3、在下列原型所示的c++函数中,按"传值"方式传递参数的是________。
( B )
4、有以下程序
#include<stdio.h>
#define N 4
void fun(int a[][N],int b[]) {
int i;
for(i=0;i<N;i++) {
b[i]=a[i][i]-a[i][N-1-i];
}
}
void main() {
int x[N][N]=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序运行后的输出结果是________。
( B )
5、有以下程序:
void ss(char *s,char t)
{
while(*s)
{
if(*s==t)
*s=t-''a''+''a'';
s++;
}
}
main()
{
char strl[100]="abcddfefdbd",c=''d'';
ss(strl,c);
printf("%s\n",strl);
}
程序运行后的输出结果是________。
( A )
6、设有以下函数
f(int a) {
int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是______。
main() {
int a=2,i;
for(i=0;i<3;i++)printf("%d\n"f(a));
}
( B )
7、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为________。
( D )
8、对于 if(表达式)语句,以下说法正确的是________。
( D )
9、c语言函数的隐含存储类别是________。
( A )
10、如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是________。
七、指针 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义一维数组的选项是________。
( B )
2、若已定义实参数组 int a[3][4]= { 2,4,6,8,10 }; 则在被调用函数 f 的下述定义中,对形参数组 b 定义正确的选项是 __________.
( D )
3、下列函数原型声明中错误的是________。
( C )
4、若定义了int m,n=0,*p1=&m; 则与m=n等价的语句是________。
( D )
5、在c语言中,关于变量的作用域,下列描述中错误的是________。
( D )
6、假定int类型变量占用4个字节,若有定义:int x[10]= {0,2,4}则数组x在内存中所占字节数是______。
( D )
7、若有int *p1, *p2,k; 不正确的语句是________。
( A )
8、若有 int a[10], *p=a; ,且 a 数组已赋值,则与 a[4]不等价的表达式为________。
( C )
9、以下叙述中错误的是________。
( D )
10、若调用 fputc 函数输出字符成功,则其返回值是()。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、已知有如下结构体:
struct sk
{
int a;
float b;
}
data,*p;
若有p = &data,则对data的成员a引用正确的是________。
( C )
2、以下对结构体类型变量的定义中,不正确的是________。
( D )
3、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
( D )
4、若有下面的说明和定义,则sizeof(struct aa)的值是________。
struct aa {
int rl;
double r2;
float r3;
union uu {
char u1[5];
long u2[2];
} ua;
} mya;
( A )
5、设有以下语句
typedef struct s
{
int g;
char h;
}
t;
则下面叙述中正确的是________。
( D )
6、表达式 *((int *)(p+1)+2)的值时_______.
static struct
{
int x, y[3];
}
a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p;
p = a+1;
( B )
7、c语言中,定义结构体的保留字是________。
( A )
8、定义共用体的关键字是________。
( C )
9、有以下程序
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);
}
程序运行后的输出结果是________。
( D )
10、当定义一个结构体变量时,系统为它分配的内存空间是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、有以下程序:
main()
{
int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是________。
( D )
2、读出以下语句的输出结果是________。 int x=10,y=10;printf("%d %d\n",x--,--y);
( C )
3、有以下程序 int a=2;
int f(int n)
{
static int a=3;
int t=0;
if(n%2)
{
static int a=4;
t += a++;
}
else
{
static int a=5;
t += a++;
}
return t+a++;
}
main()
{
int s=a, i;
for( i=0; i<3; i++) s+=f(i);
printf("%d\n", s);
}
程序运行后的输出结果是________。
( C )
4、以下程序
#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);
}
程序运行后的结果是________。
( A )
5、有以下程序
main( )
{
unsigned char a,b;
a=4|3;
b=4&3;
printf("%d %d\n",a,b);
}
执行后输出结果是________。
( D )
6、以下程序的输出结果是
#include <stdio.h>
#include <string.h>
main()
{
char b1[8]="abcdefg",b2[8],*pb=b1+3;
while (--pb>=b1) strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
( A )
7、下列语句执行后的结果是______。 y=5; p=&y; x=*p++;
( C )
8、有如下程序
main( )
{
int a=7,b=5,c=9;
if(a<b)if(b<0) c=0;
else c++;
printf("%d\n",c);
}
该程序的输出结果是______。
( A )
9、以下程序的输出结果是______。
#include <stdio.h>
#include <string.h>
main()
{
char str[12]={'s','t','r','i','n','g'};
printf("%d\n",strlen(str) );
}
( B )
10、下面程序的运行结果是________。
fun(int p)
{
int k=1;
static t=2;
k=k+1;
t=t+1;
return(p*k*t);
}
main( )
{
int x=4;
fun(x);
printf(''%d\n'',fun(x));
}
相关标签:
- C语言
- 安徽理工大学
- 复习题