C语言笔试题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
083 1. 在下列符号中选出3个合法的C语言标识符:
Abc, 123, _char, a*b, static, case, long,INT
2.假设C语言中一个int型数据在内存中占2个字节,请写出unsigned int 型数据的取值范围。
3.假设a,b,c分别表示三角形的三个边长,请写出a,b,c能够构成三角 形的条件:任意两边之和大于第三边。
C语言笔试题 071
1.定义int x=10,y=20,z=30;写出z=(x++)+(++y);之后各变量的 值。
2.定义int a=123;分别计算表达式(a%5)与(a/5)的值。 3.定义int m=10,n=20;写出表达式!(m!=n)与(m=!n)的真假。 4.定义int n,a; 分别写出判断表达式:a和n都大于0且a是n的
写出printf(“%d”, strlen(s)); 和printf(“%d”, sizeof(s)); 的结果(strlen( ) 为求字符串长度的库函数,sizeof为求对象存储字节数的运算符)。 10.定义struct student { int num; char name[20];} st[3]; FILE *fp; fp已以文本方式打开文件写,试写一条语句:将st[2]的各 成员的值写到文件fp中。
A) int *p[10];
B) int (*p)( );
C) int **p;
D) int (*p)[10];
6. 以下四项中哪个是合法的函数说明语句(____) A) double func( int a, int b); B) double func( int a, b ); C) double func( a, int b ); D) double func( a, b );
3.计算位运算表达式的值,结果用十进制描述:~1、033&0x22。 4.已知字母’A’的ASCII码值为65,定义char c1=’E’; int c2=65; 分别写出
printf(“%d”,c1); putchar(c2+32);的结果。 5.定义int x=1122,y=1123; 写出执行表达式x++>y?x--:--y后x和y的值。 6.写出printf(“%3d*%7.2f”, 1234, 456.123); 的结果。 7.定义int i; 计算for(i=0; i*i<111; i++){ }的循环次数。 8.写出printf(“%d”, strlen(“string\097”)); 和sizeof(“string\097”)的结果
8.定义int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+5; 请写出表达式p-a 和++(*(++p))的值。
9. 设有定义:int x;char s[80]; 执行scanf(“%4d%s”,&x,s); 语句,若从键盘第1列开始输入数据1234.56<回车>,请分别写出x和s的 值。
A) C程序总是从第一个定义的函数开始执行。 B) C程序总是从最后一个定义的函数开始执行。 C) C程序总是从main()函数开始执行。 D) C程序中的main()函数必须放在程序的开始部分。
2. 以下四项中哪个是不合法的常量(____)
A) 'xab'
B) "x1f"
C) 0x1234
D) 2.1e3
if(m==10) x=0; else if(m==20) x=1; else x=2; 8. 请写出下列程序段的输出结果 long a=0x1234; a=a&0377; printf("%lx %lo\n",a,a); 9. 设有定义:char *aa[2]={"abcd","ABCD"};int i; 请写出语句 for(i=0; i<2; i++) printf("%c",*(aa[i]+i)); 执行后的输出结果。
081 1.设有定义char a=’c’; 下列语句片段putchar(a); putchar(‘a’); 将输出什
么? 2.设有定义 float f1; int d1; 执行语句scanf(“%3d%f”, &d1, &f1); 时从键
盘输入数据串:987653abbb,那么d1和f1的值将是什么? 3.定义 int a[5]={199,211}; 写出语句printf(“%d”, a[2]-a[4] ); 执行后的输
C) a%2
D) a%2==0
9. 设有定义 int a; char c; 执行输入语句
scanf("%d%c",&a,&c);
若要求a和c得到的值为10和'Y',正确的输入方式是(____)
A) 10,Y
B) 10Y
C) 10.Y
D) 10:Y
10. 在位运算中,操作数每右移一位,其结果相当于(____)
7. 设有定义char c;且c表示一个小写字母,结果为对应大写字母的表
达式是(____)
A) c - a + A
B) c - 'a' + 'A'
源自文库
C) c - A + a
D) c - 'A' + 'a'
8. 设有定义int a;判断a是一个偶数的表达式是(____)
A) a==2*n
B) a/2==0
(strlen( ) 为求字符串长度的库函数,sizeof为求对象存储字节数的运 算符)。 9.定义 struct num { int a; float b;} s[ ]={{10, 3.0}, {3, 158.6}}, *p=s; 计算s[0].b*s[1].a和 (int)(p+1)->b/p->a的值。 10.定义 char *pc[]={ “Shanghai”, “Beijing”, “Guangzhou” }; int i; 用循环 结构写语句分行输出这些字符串。
出结果。 4.设有以下定义:
#define tri(a,b,c) a*a+b*b-c*c 请写出语句:printf(“ tri=%d”, tri(3,4,5)!=0); 执行后的输出结果。 5.若有以下的四条变量定义及初始化语句,请选出其中正确的定义 项:
(A) char *p=“222”; (B) char a=‘abc’; (C) char *p=2000; (D) double df=(double)567; 6.假设有定义:char *s=”hello,world”,请写出语句printf(“%s”,s+6);执行 后的结果。 7.分别写出表达式:57&0x000f 和 (57&0x00f0)>>4的结果,用十进制
082 1. 定义char a,b; int x; 执行语句scanf("%c%c%d",&a,&b,&x);时从 键盘输入12345,请问语句printf("%c,%c,%d",a,b,x)的执行结果是什 么? 2. 设a和b均为实型变量,且a=5.5、b=2.5,请写出表达式(int)a+b/b
10.请从以下有关字符串的描述中选出正确的说法(多选)。 A. 字符数组的字符串可以整体输入输出 B. 字符数组中只能存放键盘上可以找到的字符 C. 字符串"That"小于字符串"The" D. 可以使用形如"That"<="The"的表达式比较字符串的大小
091 1. 以下对C程序的描述中正确的是(____)
符串s。 10. 定义FILE *fp;写出文件相关的语句:关闭fp所指向的文件。
072
1.以下所有项中哪三项是合法的C语言常量:0xff、’78’、”0”、018、 e20、1e3.4、’\0’。
2.定义int x,y,z;用C语言表达式描述下述关系:x和y都不小于z; x和y至 少有一个大于z。
3. 以下四项中哪个是不合法的用户标识符(____)
A) temp
B) my_program
C) year2009
D) int
4. 在C语言中,表示结束当前循环的语句是(____)
A) return语句
B) break语句
C) continue语句
D) end语句
5. 以下4个变量定义中,定义p为指针数组的是(____)
分别写出printf(“%s”, &s[4]); 和printf(“%c”, *(s+7)+1); 的结果。 5.定义int x=111, y=112; 写出执行语句x+=x==y--?--y:++x; 后x和y的值。 6.写出printf(“%d,%u,%x,%o”, -1,-1,-1,-1); 的结果。 7.定义int i=0; 写出执行语句while(i++<10); 后的i的值。 8.定义int a[]={1,3,5,7,9,11,13,15,17,19}, *p=&a[3]; 分别计算表达式 (&a[8] &p[-2]) 和 (*(a+7)-*(p+2)) 的值。 9.定义 char s[20]=“string\061\nstring\062”;
4.假设m是一个2位正整数, 请用一个表达式描述m的逆序整数。比 如,m是12,则m的逆序整数是21。
5.设有定义int s=168; 请写出表达式s/2+(s+1)/2的值。
6.设有定义int x=8; 请写出表达式x<<2和x>>2的值。
7. 设有定义int y=2009; 写出表达式 ((y%4==0) && (y%100!=0) || (y%400==0)) ? "Leap Year" : "Normal Year" 的值。
表示。 8.设有定义int a,b,c; 用表达式描述如下关系:a不比b大但一定要小于c 9.设有定义int x=1,y=2,z=3; 写出表达式x=(x==y--)?(z=z+x):(z=z-x)执行
后x,y,z的值。 10.请用for结构改写下面的while循环语句:
int j=0; while (j<=10) j=j+2; 11.请用if-else结构改写下面的switch语句: switch(x>0) { case 0: y=1; break; case 1: y=-1; }
10. 设有变量定义: struct num { int x; int y; } stu[2] = {{1,2 },{ 4,6 }};
计算下列表达式的值: sqrt((stu[1].x-stu[0].x)*(stu[1].x-stu[0].x)+(stu[1].y-
stu[0].y) *(stu[1].y-stu[0].y))
和 (int)(a+b)/b的值(小数点后保留2位小数)。 3. 定义 int n ,*p1=&n; 假设有赋值语句 *p1=a; p1=b; 请写出变量a 和b的定义语句。 4. 写出判断表达式:整数x是y的倍数;整数n的个位数与它的十位数相 等。 5. 若定义int a=3,b=2,c=1; 判断下列两个表达式是真还是假: a>b>c,a>b&&b>c。 6.定义char a[]="0123456789",*p=a+8; 请写出语句printf("%c %s",*p,p-3);的输出结果。 7. 用switch语句改写下列if-else语句:
073 1.以下所有项中哪三项是合法的C语言变量名:_int、a[i]、*p、long、
Sum、a2.1、“abc”、b12、3s。 2.设a和b为正整数,分别写出判断表达式:a和b都不是偶数; a和b至
少有一个是偶数。 3.计算位运算表达式的值,结果用十进制描述:100^200、100&36。 4.定义 char s[]=“12345AbCdE”;
倍数、a正好比n大5。 5.定义float x;并设x>0,写出表达式求:x四舍五入后和裁去小数
后的整数。 6.分别计算位运算表达式的值:(14 & 13)、(~5 & 15)。 7.分别将二进制01000111与十六进制A8转换为十进制。 8.写出printf("%05d,%4.2f\n",123,123.456);的执行结果。 9.定义int n;char s[81];写出scanf语句,从键盘上输入整数n和字
A) 操作数乘以2
B) 操作数乘以4
C) 操作数除以2
D) 操作数除以4
11. 设有定义:int a[10]={6,7,8,9,10};正确解释是(____) A) 将5个初值依次赋给a[1]至a[5] B) 将5个初值依次赋给a[0]至a[4] C) 将5个初值依次赋给a[6]至a[10] D) 将5个初值依次赋给a[5]至a[9]
Abc, 123, _char, a*b, static, case, long,INT
2.假设C语言中一个int型数据在内存中占2个字节,请写出unsigned int 型数据的取值范围。
3.假设a,b,c分别表示三角形的三个边长,请写出a,b,c能够构成三角 形的条件:任意两边之和大于第三边。
C语言笔试题 071
1.定义int x=10,y=20,z=30;写出z=(x++)+(++y);之后各变量的 值。
2.定义int a=123;分别计算表达式(a%5)与(a/5)的值。 3.定义int m=10,n=20;写出表达式!(m!=n)与(m=!n)的真假。 4.定义int n,a; 分别写出判断表达式:a和n都大于0且a是n的
写出printf(“%d”, strlen(s)); 和printf(“%d”, sizeof(s)); 的结果(strlen( ) 为求字符串长度的库函数,sizeof为求对象存储字节数的运算符)。 10.定义struct student { int num; char name[20];} st[3]; FILE *fp; fp已以文本方式打开文件写,试写一条语句:将st[2]的各 成员的值写到文件fp中。
A) int *p[10];
B) int (*p)( );
C) int **p;
D) int (*p)[10];
6. 以下四项中哪个是合法的函数说明语句(____) A) double func( int a, int b); B) double func( int a, b ); C) double func( a, int b ); D) double func( a, b );
3.计算位运算表达式的值,结果用十进制描述:~1、033&0x22。 4.已知字母’A’的ASCII码值为65,定义char c1=’E’; int c2=65; 分别写出
printf(“%d”,c1); putchar(c2+32);的结果。 5.定义int x=1122,y=1123; 写出执行表达式x++>y?x--:--y后x和y的值。 6.写出printf(“%3d*%7.2f”, 1234, 456.123); 的结果。 7.定义int i; 计算for(i=0; i*i<111; i++){ }的循环次数。 8.写出printf(“%d”, strlen(“string\097”)); 和sizeof(“string\097”)的结果
8.定义int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+5; 请写出表达式p-a 和++(*(++p))的值。
9. 设有定义:int x;char s[80]; 执行scanf(“%4d%s”,&x,s); 语句,若从键盘第1列开始输入数据1234.56<回车>,请分别写出x和s的 值。
A) C程序总是从第一个定义的函数开始执行。 B) C程序总是从最后一个定义的函数开始执行。 C) C程序总是从main()函数开始执行。 D) C程序中的main()函数必须放在程序的开始部分。
2. 以下四项中哪个是不合法的常量(____)
A) 'xab'
B) "x1f"
C) 0x1234
D) 2.1e3
if(m==10) x=0; else if(m==20) x=1; else x=2; 8. 请写出下列程序段的输出结果 long a=0x1234; a=a&0377; printf("%lx %lo\n",a,a); 9. 设有定义:char *aa[2]={"abcd","ABCD"};int i; 请写出语句 for(i=0; i<2; i++) printf("%c",*(aa[i]+i)); 执行后的输出结果。
081 1.设有定义char a=’c’; 下列语句片段putchar(a); putchar(‘a’); 将输出什
么? 2.设有定义 float f1; int d1; 执行语句scanf(“%3d%f”, &d1, &f1); 时从键
盘输入数据串:987653abbb,那么d1和f1的值将是什么? 3.定义 int a[5]={199,211}; 写出语句printf(“%d”, a[2]-a[4] ); 执行后的输
C) a%2
D) a%2==0
9. 设有定义 int a; char c; 执行输入语句
scanf("%d%c",&a,&c);
若要求a和c得到的值为10和'Y',正确的输入方式是(____)
A) 10,Y
B) 10Y
C) 10.Y
D) 10:Y
10. 在位运算中,操作数每右移一位,其结果相当于(____)
7. 设有定义char c;且c表示一个小写字母,结果为对应大写字母的表
达式是(____)
A) c - a + A
B) c - 'a' + 'A'
源自文库
C) c - A + a
D) c - 'A' + 'a'
8. 设有定义int a;判断a是一个偶数的表达式是(____)
A) a==2*n
B) a/2==0
(strlen( ) 为求字符串长度的库函数,sizeof为求对象存储字节数的运 算符)。 9.定义 struct num { int a; float b;} s[ ]={{10, 3.0}, {3, 158.6}}, *p=s; 计算s[0].b*s[1].a和 (int)(p+1)->b/p->a的值。 10.定义 char *pc[]={ “Shanghai”, “Beijing”, “Guangzhou” }; int i; 用循环 结构写语句分行输出这些字符串。
出结果。 4.设有以下定义:
#define tri(a,b,c) a*a+b*b-c*c 请写出语句:printf(“ tri=%d”, tri(3,4,5)!=0); 执行后的输出结果。 5.若有以下的四条变量定义及初始化语句,请选出其中正确的定义 项:
(A) char *p=“222”; (B) char a=‘abc’; (C) char *p=2000; (D) double df=(double)567; 6.假设有定义:char *s=”hello,world”,请写出语句printf(“%s”,s+6);执行 后的结果。 7.分别写出表达式:57&0x000f 和 (57&0x00f0)>>4的结果,用十进制
082 1. 定义char a,b; int x; 执行语句scanf("%c%c%d",&a,&b,&x);时从 键盘输入12345,请问语句printf("%c,%c,%d",a,b,x)的执行结果是什 么? 2. 设a和b均为实型变量,且a=5.5、b=2.5,请写出表达式(int)a+b/b
10.请从以下有关字符串的描述中选出正确的说法(多选)。 A. 字符数组的字符串可以整体输入输出 B. 字符数组中只能存放键盘上可以找到的字符 C. 字符串"That"小于字符串"The" D. 可以使用形如"That"<="The"的表达式比较字符串的大小
091 1. 以下对C程序的描述中正确的是(____)
符串s。 10. 定义FILE *fp;写出文件相关的语句:关闭fp所指向的文件。
072
1.以下所有项中哪三项是合法的C语言常量:0xff、’78’、”0”、018、 e20、1e3.4、’\0’。
2.定义int x,y,z;用C语言表达式描述下述关系:x和y都不小于z; x和y至 少有一个大于z。
3. 以下四项中哪个是不合法的用户标识符(____)
A) temp
B) my_program
C) year2009
D) int
4. 在C语言中,表示结束当前循环的语句是(____)
A) return语句
B) break语句
C) continue语句
D) end语句
5. 以下4个变量定义中,定义p为指针数组的是(____)
分别写出printf(“%s”, &s[4]); 和printf(“%c”, *(s+7)+1); 的结果。 5.定义int x=111, y=112; 写出执行语句x+=x==y--?--y:++x; 后x和y的值。 6.写出printf(“%d,%u,%x,%o”, -1,-1,-1,-1); 的结果。 7.定义int i=0; 写出执行语句while(i++<10); 后的i的值。 8.定义int a[]={1,3,5,7,9,11,13,15,17,19}, *p=&a[3]; 分别计算表达式 (&a[8] &p[-2]) 和 (*(a+7)-*(p+2)) 的值。 9.定义 char s[20]=“string\061\nstring\062”;
4.假设m是一个2位正整数, 请用一个表达式描述m的逆序整数。比 如,m是12,则m的逆序整数是21。
5.设有定义int s=168; 请写出表达式s/2+(s+1)/2的值。
6.设有定义int x=8; 请写出表达式x<<2和x>>2的值。
7. 设有定义int y=2009; 写出表达式 ((y%4==0) && (y%100!=0) || (y%400==0)) ? "Leap Year" : "Normal Year" 的值。
表示。 8.设有定义int a,b,c; 用表达式描述如下关系:a不比b大但一定要小于c 9.设有定义int x=1,y=2,z=3; 写出表达式x=(x==y--)?(z=z+x):(z=z-x)执行
后x,y,z的值。 10.请用for结构改写下面的while循环语句:
int j=0; while (j<=10) j=j+2; 11.请用if-else结构改写下面的switch语句: switch(x>0) { case 0: y=1; break; case 1: y=-1; }
10. 设有变量定义: struct num { int x; int y; } stu[2] = {{1,2 },{ 4,6 }};
计算下列表达式的值: sqrt((stu[1].x-stu[0].x)*(stu[1].x-stu[0].x)+(stu[1].y-
stu[0].y) *(stu[1].y-stu[0].y))
和 (int)(a+b)/b的值(小数点后保留2位小数)。 3. 定义 int n ,*p1=&n; 假设有赋值语句 *p1=a; p1=b; 请写出变量a 和b的定义语句。 4. 写出判断表达式:整数x是y的倍数;整数n的个位数与它的十位数相 等。 5. 若定义int a=3,b=2,c=1; 判断下列两个表达式是真还是假: a>b>c,a>b&&b>c。 6.定义char a[]="0123456789",*p=a+8; 请写出语句printf("%c %s",*p,p-3);的输出结果。 7. 用switch语句改写下列if-else语句:
073 1.以下所有项中哪三项是合法的C语言变量名:_int、a[i]、*p、long、
Sum、a2.1、“abc”、b12、3s。 2.设a和b为正整数,分别写出判断表达式:a和b都不是偶数; a和b至
少有一个是偶数。 3.计算位运算表达式的值,结果用十进制描述:100^200、100&36。 4.定义 char s[]=“12345AbCdE”;
倍数、a正好比n大5。 5.定义float x;并设x>0,写出表达式求:x四舍五入后和裁去小数
后的整数。 6.分别计算位运算表达式的值:(14 & 13)、(~5 & 15)。 7.分别将二进制01000111与十六进制A8转换为十进制。 8.写出printf("%05d,%4.2f\n",123,123.456);的执行结果。 9.定义int n;char s[81];写出scanf语句,从键盘上输入整数n和字
A) 操作数乘以2
B) 操作数乘以4
C) 操作数除以2
D) 操作数除以4
11. 设有定义:int a[10]={6,7,8,9,10};正确解释是(____) A) 将5个初值依次赋给a[1]至a[5] B) 将5个初值依次赋给a[0]至a[4] C) 将5个初值依次赋给a[6]至a[10] D) 将5个初值依次赋给a[5]至a[9]