C语言模拟题
C语言模拟题(一)
一、选择题
1、以下字符中不是转义字符的是(A )。
A、'\c'
B、'\b'
C、'\\'
D、'\a'
2、设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(A)。
A、0
B、144
C、132
D、12
3、已定义float x=1.25,y=3.37;
根据下面的输出结果,正确的输出语句是(C ).
y+x=4.62,y-x=2.12
A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);
B、printf("y+x=%f,y-x=%f\n",y+x,y-x);,l
C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);
D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);
4 、执行下面程序段后,b的值为(A ).
int s=35;
char t='A';
int b;
b=((s&&4)&&(t<'a'));
A、1
B、3
C、2
D、0
5 k是整型,则以下程序段的执行结果是:(B )
k=-3;
if(k<=0) printf("####")
else printf("&&&&");
A、####
B、有语法错误,无结果
C、&&&&
D、####&&&&
6 设j和k都是int类型,则下面的for循环语句(D)。
for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);
A、最多执行9次
B、是无限循环
C、循环体一次也不执行
D、最多执行10次
7 以下正确的描述是(A ).
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
8 以下能对一维数组a进行正确初始化的语句是(B)。
A、int a[10]={};
B、int a[]={0};
C、int a[10]={10*1};
D、int a[10]=(0,0,0,0,0)
9 以下正确的说法是(A ).
A、函数的类型决定返回值的类型
B、定义函数时,形参的类型说明可以放在函数体内
C、return后面不能为表达式
D、如果形参与实参的类型不一致,以实参类型为准
10 以下程序的输出结果为(C)。
int func(int x,int y)
{ return(x+y);
}
main()
{ int a=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
A、9
B、15
C、13
D、函数调用出错
11 以下正确的说法是(D)。
A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
B、用户若需调用标准库函数,调用前必须重新定义
C、系统根本不允许用户重新定义标准库函数
D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
12 在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是
(A ).
A、用尖括号时,直接按系统标准方式检索文件目录.
B、用双引号时,直接按系统标准方式检索文件目录.
C、用双括号和尖括号时,都不检查源文件所在的文件目录.
D、以上说法都不对.
13 当说明一个结构体变量时系统分配给它的内存是(D)。
A、成员中占内存量最大者所需的容量
B、结构中第一个成员所需内存量
C、结构中最后一个成员所需内存量
D、各成员所需内存量的总和
14 以下程序段给数组所有的元素输入数据,请选择正确答案填入(C )。
#include
main()
{ int a[10],i=0;`
while(i<10) scanf("%d",(_______));
.
.
.
}
A、&a[i+1]
B、a+i
C、a+(i++)
D、&a[++i]
15 在定义构造数据类型时,不能(A)。
A、末尾不写分号
B、说明存储类型
C、初始化
D、说明变量
二、判断题
1、在C程序中,%作为运算符时,是只能用于整数运算。Y
2、若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.N
3、格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.N
4 char c[6]="abcde"; printf("%3s", c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.N
5 设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!=z的值为0.Y
6 运算符的级别由高向低依次为!->算术运算符->关系运算符->逻辑运算符->赋值运算符.Y
7 已知a=3,b=4,c=5,则逻辑表达式!(a>b) && !c||1的值为1.Y
8 for循环语句只能用于循环次数确定的情况下.N
9 break语句能够终止当前进行的多层循环.Nh
10 for循环的三个表达式都可以省略.Y
11 下列程序段是否正确: N
int a[10];
....
a++;kl
12 定义一维数组的形式为:类型说明数组名[表达式],其中表达式必须是整型常量.N
13 字符串"Da lian"在内存中的存储长度是7. N
14 字符串"Da lian"在内存中的存储长度是7. N
15 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.N
lllllllll
16 静态局部变量是在编译时被初始化的,故它只被赋初值一次.Y
17 被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.N
18 假设有int a[10], *p;则p=&a[0]与p=a等价Y
19 typedef可以定义生成新的数据类型.N
20 用fopen("file","r+");打开的文件"file"可以进行修改。Y
三、填空题
1、设a、b、c为整型数, 且a=
2、b=
3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a 的值是 __28___.
2 若所用变量都已正确定义,请填写以下程序段的输出结果_OK____.
for(i=1;i<=5;i++);
printf("OK");
3 c语言表达式!(4>=6)&&(3<=7)的值是__1___.
4 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是___3__. for (x=0,y=0;y!=123&&x<3;x++)
scanf ("%d",&y);
5 按内存排列顺序, 数组char a[2]中的所有元素是a[0]和__a[1]___.
6 函数不可以进行嵌套定义,但可以进行嵌套__调用___.
7 将数组a的首地址赋给指针变量p的语句是_p=a;____.
8 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 __30___。 struct stud { char num[6]; float s[4]; double ave; } a,*p;
四、程序设计
1、【程序设计】
功能:把20个随机数存入一个数组,然后输出该数组中的
最小值。其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
------------------------------------------------
#include "stdio.h"
#include "stdlib.h"
#define VSIZE 20
int vector[VSIZE] ;
int fun(int list[],int size)
{
/*********Begin**********/
/********** End **********/
}
main()
{
int i;
void NONO();
for (i=0;i { vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]); } i=fun(vector,VSIZE); printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]); NONO(); } void NONO() { int i,t; FILE *fp ; fp = fopen("out.dat", "w") ; for (i=0;i { fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]); } t=fun(vector,VSIZE); fprintf(fp,"\nMininum: Vector[%d]=%6d\n",t,vector[t]); fclose(fp) ; } 2、功能:求k!(k〈13),所求阶乘的值作为函数值返回。 (要求使用递归) ------------------------------------------------*/ #include "stdio.h" #include "conio.h" long fun(int k) { /*********Begin**********/ /********** End **********/ } main() { int m; void TestFunc(); printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %ld\n", fun(m)); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int s ; int t; long o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } for(s=1;s<=5;s++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%ld\n",o); } fclose(IN); fclose(OUT); } 五、程序改错 1、功能:求1到10的阶乘的和。 ------------------------------------------------------*/ #include "stdio.h" main() { int i; float s=0; float fac(int n); /**********ERROR**********/ for(i=1;i<10;i++) /**********ERROR**********/ s=fac(i); printf("%f\n",s); } float fac(int n) { /**********ERROR**********/ int y=1; int i; for(i=1 ;i<=n;i++) y=y*i; /**********ERROR**********/ return; } 2、功能:实现交换两个整数的值。 例如:给a和b分别输入3和6 ,输出为a=6 b=3 ------------------------------------------------------*/ #include "stdio.h" /**********ERROR**********/ void fun (int a, b) { int t; /**********ERROR**********/ t=a; /**********ERROR**********/ a=b; /**********ERROR**********/ b=t; } main() { int a,b; printf("enter a,b:");scanf("%d%d",&a,&b); fun(&a,&b); printf("a=%d b=%d\n",a,b); } 六、程序填空 1 、功能:调用函数fun计算m=1-2+3-4+……+9-10,并输出结果。-------------------------------------------------------*/ #include "stdio.h" int fun( int n) { int m=0,f=1,i; /***********FILL***********/ for(i=1;_____;i++) { m+=i*f; /***********FILL***********/ _____; } /***********FILL***********/ return _____; } main() { printf("m=%d\n", fun(10)); } 2 、题目:输出连接后的字符串。 -------------------------------------------------------*/ #include "stdio.h" /***********FILL***********/ _____ main() { char ss[10]="12345"; strcat(ss,"6789"); /***********FILL***********/ printf(_____,ss); } C语言模拟题(二) 一、判断题 1 若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C )。 A、x+n=I; B、x==5; C、x=n/2.5; D、5=x=4+1; 2 下述错误的C语言常量是:(C ). A、0xf B、5. C、090 D、.25 3 根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法?(B )。(规定用字符串[CR]表示回车,U表示空格) main() {int a; char c1,c2; scanf("%d%c%c", &a,&c1,&c2); } A、123UoUk[CR] B、123ok[CR] C、123Uok[CR] D、123oUk[CR] 4 已知键入a=4,b=3,执行下面程序输出的结果是(B ). main() { int a,b,s; scanf("%d%d",&a,&b); s=a; if(a>b) s=b; s=s*s; printf("%d\n", s); } A、13 B、9 C、16 D、15 5 执行下面程序段后,i的值是(A ). int i=10; switch(i) {case 9: i+=1; case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 6 以下不是无限循环的语句为(D)。 A、while(1){x++;} B、for(;;x++=i); C、for(i=10;;i--) sum+=i; D、for(y=0,x=1;x>++y;x=i++) i=x; 7 下面程序段运行的结果是( A). x=-1; do{ x=x*x; }while (!x); A、循环执行一次 B、有语法错误 C、死循环 D、循环执行两次 8 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(A)。 A、3 B、无确定值 C、4 D、2 9 若定义int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g; 则数值为4的表达式是 (D ). A、a[4] B、a[g-c] C、a['d'-'c'] D、a['d'-c] 10 以下叙述中正确的是(C)。 A、可以在一个函数中定义另一个函数 B、main()函数必须放在其它函数之前 C、构成C程序的基本单位是函数 D、所有被调用的函数一定要在调用之前进行定义 11 下述函数的功能是(C ). int fun(char *x) { char *y=x; while(*y++); return y-x-1; } A、比较两个字符串的大小 B、求字符串存放位置 C、求字符串的长度 D、将字符串x连接到字符串y后面 12 在执行"文件包含"命令时,下列说法正确的是( A). A、作为一个源程序编译,得到一个目标文件. B、一个 include 命令可指定多个被包含文件. C、在编译时作为两个文件联结. D、被包含的文件可以是源文件或目标文件. 13 在说明语句:int *f();中,标识符f代表的是(A)。 A、一个返回值为指针型的函数名 B、一个用于指向函数的指针变量 C、一个用于指向一维数组的行指针 D、一个用于指向整型数据的指针变量 14 下面程序的输出结果应该是(B ). char s[ ]="ABCD"; main() {char *p; for ( p=s;p printf("%s",p); } A、DCBA B、ABCDBCDCDD C、ABCDABCABA D、ABCD 15 设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是(C)。 A、p=(struct sk*) data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a; 二、判断题 1 在C程序中,%作为运算符时,是只能用于整数运算。Y 2 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。Y 3 格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.N 4 整型变量在全部范围内可以用字符格式输出.N 5 已知a=3,b=4,c=5,则逻辑表达式!(a+b)+c-1 && b+c/2的值为0.N 6 语句if(a>b) printf("%d",a); else printf("%d",b);可以用条件表达式a>b?a:b取代N. 7 已知a=4,b=2,c=3,d=5,表达式a>b?a:c 8 for循环的三个表达式都可以省略.Y 9 continue语句对于while和do-while循环来说,意味着转去计算While表达式Y. 10 for语句的循环体至少执行一次.N 11 语句 char ch[12]={"C Program"};与语句 char ch[ ]="C Program";具有不同的赋初值功能.N 12 定义char s[9];gets(s);若输入的字符串是Turbo c↙(↙代表按回车键操作) 则输入给数组s中的字符个数是7.Y 13 对静态数组的初始化是在编译阶段完成的. Y 14 C语言中,通过函数调用只能获得一个返回值.N 15 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.N 16 函数的返回值可以通过函数中的return语句获得。Y 17 被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.N 18 char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。N 19 对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。Y 20 用fopen("file","r+");打开的文件"file"可以进行修改。Y 三、填空题 1设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是__0___. 2 以下程序的输出结果为__9,10___, #include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);} 3 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是__1___. 4 若输入字符串:abcde<回车>,则以下while循环体将执行 __0___ 次. while((ch=getchar())=='e') printf("*"); 5 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标值是__8___. 6 函数不可以进行嵌套定义,但可以进行嵌套_调用____. 7 在c程序中,只能给指针变量赋NULL值和__地址___值. 8 设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 __16___。 union stud { char num[6]; float s[4]; double ave; } a,*p; 四、程序设计 1 、功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 ------------------------------------------------*/ #include "string.h" #include "stdio.h" void change(char str[]) { /*********Begin**********/ /********** End **********/ } main() { void change(); char str[40]; void TestFunc(); gets(str); change(str); puts(str); TestFunc(); } void TestFunc() { FILE *IN,*OUT; char i[200]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } fscanf(IN,"%s",i); change(i); fprintf(OUT,"%s\n",i); fclose(IN); fclose(OUT); } 2 、功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:642。 ------------------------------------------------*/ #include "stdio.h" long fun (long s,long t) /*********Begin**********/ /********** End **********/ } return t; } main() { long s, t,m; void TestFunc(); printf("\nPlease enter s:"); scanf("%ld", &s); m=fun(s,t); printf("The result is: %ld\n", m); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int n; long i,t,m; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } for(n=0;n<5;n++) { fscanf(IN,"%ld",&i); m=fun(i,t); fprintf(OUT,"%ld\n",m); } fclose(IN); fclose(OUT); } 五、程序改错 1 、功能:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 ------------------------------------------------------ #include "stdio.h" main() { int day,x1,x2; day=9; /**********ERROR**********/ x2==1; while(day>0) { /**********ERROR**********/ x1=(x2+1)/2; x2=x1; /**********ERROR**********/ day++; } printf("the total is %d\n",x1); } 2 、功能:将s所指字符串的反序和正序进行连接形成一个新串放在 t所指的数组中。 例如:当s所指的字符串的内容为"ABCD"时,t所指数组中 的内容为"DCBAABCD"。 ------------------------------------------------------* #include "conio.h" #include "stdio.h" #include "string.h" /**********ERROR**********/ void fun (char s, char t) { int i, d; /**********ERROR**********/ d = len(s); /**********ERROR**********/ for (i = 1; i t[i] = s[d - 1 - i ]; for (i = 0; i t[ d + i ] = s[i]; /**********ERROR**********/ t[2*d] = '/0'; main() { char s[100], t[100]; printf("\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\nThe result is: %s\n", t); } 六、程序填空 1 、题目:从键盘上输入10个整数,输入负数不算。 -------------------------------------------------------*/ #include "stdio.h" main() { int i=0,a; do { scanf("%d",&a); /***********FILL***********/ if (_____) i++; printf("\na=%d,i=%d",a,i); } /***********FILL***********/ while(_____); } 2 、功能:通过函数的递归调用计算阶乘。 -------------------------------------------------------*/ #include "stdio.h" long power(int n) { long f; if(n>1) /***********FILL***********/ f=_____; else f=1; return(f); } main() int n; long y; printf("input a inteager number:\n"); /***********FILL***********/ scanf("%d",_____); y=power(n); /***********FILL***********/ printf("%d!=%ld\n",n,_____); } C语言模拟题(三) 一、选择题 1 下列变量说明语句中,正确的是(D)。 A、char a;b;c; B、char:a b c; C、int x;z; D、int x,z; 2 设以下变量均为int类型,则值不等于7的表达式是(A)。 A、(x=6,x+1,y=6,x+y) B、(x=y=6,x+y,y+1) C、(y=6,y+1,x=y,x+1) D、(x=y=6,x+y,x+1) 3 设: long w=65535,t=7654321; 根据下面的输出结果,正确的程序段是 (C). w=65535,t=7654321 end A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end'); B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end"); C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end"); D、printf("w=%5u,t=%7u\n",w,t);printf( "end"); 4 设x,y,z,t均为整型变量,则执行以下语句后,t的值为:(B ) x=y=z=1; t=++x||++y&&++z; A、0 B、1 C、2 D、不定值 5 如果int a=2,b=3,c=0,下列描述正确的是( B)。 A、a&&b>c的结果为假 B、!a!=(b!=c)表达式的值为1 C、a||(b=c)执行后b的值为0 D、a>b!=c和a>(b!=c)的执行顺序是一样的 6 从键盘输入的整数中找出最小值min,输入0时结束.请在A处填写正确语句(D )。#include "stdio.h" main() { int min=0,a; do{ scanf("%d",&a); if(min>a) min=a; }while(___A___); printf("%d",min); } A、a=0 B、a==0 C、a>0&&a<0 D、a!=0 7 设有如下程序段: int k=10; while(k==0) k--; 则下述说明中正确的是(A ). A、循环体一次也不执行 B、循环体执行一次 C、死循环 D、循环体执行10次 8 static char str[10]="China";数组元素个数为(D)。 A、6 B、9 C、5 D、10 9 函数调用:strcat(strcpy(str1,str2),str3)的功能是( D)。 A、将串str1复制到串str2中后再连接到串str3之后 B、将串str2连接到串str1之后再将串str1复制到串str3中 C、将串str1连接到串str2之后再复制到串str3之后 D、将串str2复制到串str1中后再将串str3连接到串str1之后 10 C语言程序中必须有的函数是(B)。 A、#include "stdio.h" B、main C、printf D、scanf 11 程序运行结束后,屏幕上输出值为(B ). static int x=10; main( ) { int x=3; f( ); x- -; printf("%d",x); } f( ) { x++; } A、10 B、2 C、11 D、3 12 file1.c中有命令,#include A、a在file1.c中应用extern说明. B、a在file1.c中有效,不必用extern说明. C、a在file1.c中不生效 D、a在file1.c和file2.c中均不生效. 13 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(C)。 A、*p=*q; B、n=*q; C、p=n; D、p=q; 14、以下程序的输出结果是(A ). main() {char str[ ]="ABCD",*p=str;printf("%d\n",*(p+3));} A、68 B、不确定的值 C、字符D的地址 D、0 15 使用共用体变量,不可以(A)。 A、同时访问所有成员 B、进行动态管理 C、节省存储空间 D、简化程序设计 二、判断题 1 在C语言中,各种类型的整型数据在内存中都占2个字节。N 2 表达式 (j=3, j++) 的值是4.N 3 格式字符%e以指数形式输出实数数字部分小数位数7位.N 4 char c[6]="abcde"; printf("%3s", c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.N 5 设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&&e+f*2的值为0.N 6 已知a=1,b=2,c=3,d=4,则条件表达式a>b?a:(c>d?c:d)的值为4.Y 7 已知a=3,b=4,c=5.则逻辑表达式a+b>c && b==c值为0.Y 8 do-while循环由do开始,while结束,循环体可能一次也不做。N 9 对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.N 10 在do-while循环中,任何情况下都不能省略while.N 11 对静态变量的初始化不是在编译阶段完成的.N 12 定义 int x[5],n;则x=x+n;或x++;都是正确的.N 13 语句 char ch[12]={"C Program"};与语句 char ch[ ]="C Program";具有不同的赋初值功能.N 14 数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.N 《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); } 二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y); 安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1 模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24 对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。 本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 ) 《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。 一.单项选择题 1.一个C语言源程序由一个或多个( D )组成。 A.子程序B.过程C.函数D.主函数 2. 下列定义变量的语句中错误的是( C )。 A.int _int B.double int_1 C.char For D.float US$ 3.以下语句有语法错误的是( B )。 A.printf("%d",0xabc); B.printf("%f",1.234e2.0); C.printf("%d",057); D.printf("%c",'\\'); 4.若有定义int m=2,n=2;执行语句(m=0)&&(n=3);后m和n的值分别为( D )。 A.2 2 B.0 3 C.2 3 D.0 2 5.若有定义int k=4,a=3,b=2,c=1;则表达式kb) c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c;} C.if(a>b) c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c;} 10. 若变量已正确定义,要求程序段完成求10!的计算,不能完成此操作的程序段是( B )。 A.for(i=1,fac=1;i<=10;i++) fac*=i; 一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表: 下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内 一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy , c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main() { printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b 《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x _k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued 此答案为自己所出,若有不对之处请谅解,并希望能留言 单选题(共60题,每题1分,共60分) 1. 下列符号串中,属于C语言合法标识符的个数为 (B)。 _1_2_3,a-b-c,float,9cd,a3b4 A:1 B:2 C:3 D:4 2. 下列能为字符变量 a 赋值的是:char a= (C)。 A:'ab' B:"a" C:'\0' D:"\0" 3. 在下列字符序列中,合法的标识符是(B)。 A:P12.a B:stud_100 C:$water.1 D:88sum 4. 下列用于printf函数的控制字符常量中,代表tab 的字符常量是(B)。 A:'\b' B:'\t' C:'\r' D:'\f' 5. 下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。 A:'\b' B:'\t' C:'\r' D:'\n' 6. 如有以下程序:unsigned int a=6; int b=-20; char c; c=(a+b>6); 则c的值为(C)。(int转换为unsigned ) A:6 B:-14 C:1 D:0 7. 关于C语言,以下不正确的叙述是(B)。 A:在C语言程序设计中,逗号运算符的优先级最低 B:在C语言程序设计中,var和VAR是两个相 同的变量 C:C语言也支持重载 D:此处的两个语句int a; a=-13.06;在程序编译中将会提示出错 8. 若有定义: int a=2,*p; float x=1, y=2; char e=‘w’; 则以下用法不正确的是(B)。 A:printf("%c",e+a); B:p=&x; C:a *=y+x; D:x=y=e; 9. int x=20; printf("%d\n",~x); 以上程序片段的输出是(B)。 A:235 B:-21 C:-20 D:-11 10. 在C语言中,要求运算数必须是整型的运算符是 (D)。 A:/ C语言模拟试题 一、单项选择题(共40分每题1分) 说明:答案必须填写在答题卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是____D____。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括___B_____。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用____C____。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定4.运算符有优先级,C语言中关于运算符优先级的正确叙述是____B____。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是___C_____。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行; D、语句一行写不下时,可在任意一空格处回车换行。 6.下面数据中不属于字符型常量的是____A____。 A、“\n” B、…\0? C、…A? D、…\t? 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式______D____ 。 A、x%2==1 B、x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是____B____ 。 A 、.exe B、.C C、.obj D、.cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是____D____。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是___C_____。 A、scanf("%f%f",&a,&b); B、scanf("%f%d",&a,&b); C、scanf("%d,%f",&a,&b); D、scanf("%6.2f%6.2f",&a,&b); 11.已知int a,b; 用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是_____A___。 A、, B、空格 C、回车 D、[Tab] 12.C语言对嵌套if语句的规定是:else总是与___D___配对。 A、与之前最近的if B、第一个if C、缩进位置相同的if D、其之前最近的且尚为配对的if 13.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。 A、if(a)s1; else s2; B、if(a==0)s2; else s1; C、if(a!=0)s1; else s2; D、if(a==0)s1; else s2; :题.选择一1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf(%d,%x,k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++);可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4. 下面对数组的初始化,错误的是_____。 char s[5]=abc; char s[5]={'a','b','c'}; char s[5]= ; char s[5];s=abc; 5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行循环体语句只执行一 次 6. 如果x为int型且为5,则执行if(x--<5) printf(%d,x);else printf(%d,x++);后输出结果是______。 3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用 语句中,含有的实参个数是____。 3 4 5 有语法错 8. 在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式逻辑表达式 关系表达式任意表达式 9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型定义函数时指定或缺省 的函数类型调用函数时临时决定 return语句中表达式的类型答案:D A B D C B A D C B 二.填空题: 1.如果static int y=8;main(){ int y=3;printf(%d, y);}则输出结果是______。 2. 若int x=120,y=50; 执行printf(%d,(y,x));后输出结果是______。 3. 若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的 值为__________。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数______和printf最新C语言程序设计模拟试题5(附答案)
C语言模拟试卷A
C语言模拟试题二
C语言程序设计模拟试题1附答案
c语言模拟试题
C语言程序设计模拟试题2(附答案)new
C语言程序设计模拟试题A附答案
C语言模拟试卷
C语言模拟试题1
C语言考试试题基础版
c语言程序设计教程(第2版)课后题及模拟题参考答案
C语言模拟题
C语言程序设计模拟试题2(附答案)
模拟题c语言答案
C语言模拟试题
C语言模拟题目及答案