技能培训专题:系统测试题1

已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。includemain(){char c1,c2;c

已知字母a的ASCII码为十进制数97,下面程序的输出结果是( )。 #include<stdio.h> main() { char c1,c2; c1='a'+'6'-'0'; c2='a'+'3'-'0'; printf("%c,%c\n",c1,c2); }

A.输出无定值

B.d,e

C.e,f

D.g,d


正确答案:D
解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。


有以下程序:include main(){ charc1='1',c2='2'; c1=getchar(); c2=getchar(); putcha

有以下程序: #include <stdio.h> main() { char c1='1',c2='2'; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 当运行时输入:a<回车>后,以下叙述正确的是( )。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值


正确答案:A
解析:getchar()函数执行时将从键盘缓冲区中读取用户的输入,而不管输入的是否可打印字符。所以当输入a回车>后,键盘缓冲区被输入的实际上是两个字符:'a'和'\n'。故选项A的说法是正确的。


以下程序运行后的输出结果是______。 main() { char c1,c2; for(c1='0',c2='9';c1<c2;c1++,c2--) printf("%c%c",c1,c2); printf("\n"); }

A.918245765

B.893478654

C.786584763

D.918273645


正确答案:D


有以下程序

void fun(char *a, char *b)

{ a=b; (*a)++; }

main()

{ char c1='A',c2='a',*p1,*p2;

p1=&c1; p2=&c2; fun(p1,p2);

printf("%c%c\n",c1,c2);

}

程序运行后的输出结果是

A.Ab

B.aa

C.Aa

D.Bb


正确答案:A
解析:本题考查了地址的调用。在子函数fun()中,a,b分别存储的是存放“A”,“a,,两个字符所在存储单元的地址。但在子函数中直接改变了指针变量a所指存储单元(a=b,即b所指单元)中的值,使其变为“b”,故子函数执行结束时,c1的值不变,c2的值改变。


有以下程序: includemain(){char c1='1',c2='2';c1=getchar();c2=getchar();putchar(c

有以下程序: # include<stdio.h> main() {char c1='1',c2='2'; c1=getchar();c2=getchar();putchar(c1);putchar (c2); } 当运行时输入:a<回车>后,以下叙述正确的是 ______。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值


正确答案:A
解析:getchar函数读入字符时,空格、回车符都作为字符读入,因此A正确。


系统测试题11.功能:从键盘输入一个大写字母赋给c1,要求改用小写字母输出。#include void main()char c1,c2;/*SPACE*/c1= 【?】;/*SPACE*/c2= 【?】;printf(%c,%c,c1,c2);2.题目:下列程序的功能是输入一个正整数,判断是否能被3或7整除,若不能被3或7整除, 就输出YES,否则就输出NO。请填空。#include void main( ) int k;/*SPACE*/scanf (%d,【?】);/*SPACE*/if (【?】) printf(YESn); elseprintf (NOn); 3.题目:某等差数列的第一项a=2,公差d=3。下面程序的功能是在前n(1n10)项和中,输出所有项的和能被4整除者。请填空。#include void main() int a,d,sum,n,i;/*SPACE*/ a=2; d=3;i=1;sum=【?】; scanf(%d,&n); do sum+=a; i+;/*SPACE*/ 【?】; /*SPACE*/ if(【?】) printf(%dn,sum); while(i=n); 4.题目:求100以内个位数为6且能够被3整除的所有数#includevoid main() int i,j;/*SPACE*/ for(i=0;【?】;i+) j=i*10+6;/*SPACE*/ if(【?】) continue; printf(%dt,j); 5.题目:函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用 外部(全局)变量c1、c2、c3返回主函数。例如:当n123114350时,结果应该为:c13 c21 c32。#include int c1, c2, c3;void fun(long n) c1=c2=c3=0; while(n) /*SPACE*/ switch(【?】) case 1:/*SPACE*/ c1+;【?】; case 2:/*SPACE*/ c2+;【?】; case 3: c3+; n/=10; main() long n=123114350L; fun(n); printf(nThe result: n); printf(n=%ld c1=%d c2=%d c3=%dn,n,c1,c2,c3); 6.题目:打印出11000中满足个位上的数字、十位上的数字和百位上的数字都相等的所有三位数。本题输出111,222,333,444,555,666,777,888,999, #include main() int i,g, s, b;/*SPACE*/ for (【?】; i=1000; i+) /*SPACE*/ g=【?】; s=(i/10)%10; /*SPACE*/ b=(【?】)%10; if(g=s & s=b) printf(%d,i); 7.题目:从键盘键盘输入3个整数,然后找出最小的数并输出。 例如:输入10,41,31, 输出 三个数是:10,41,31.最小数是:10.。#include #include main() int a, b, c, min; printf(请输入三个整数:n);/*SPACE*/ scanf(%d,%d,%d,【?】); printf(三个数是:%d,%d,%d., a, b, c); if (a b) min=b; else min=a;/*SPACE*/ if (【?】) min=c;/*SPACE*/ printf(最小数是:【?】, min);8.给定程序中,程序的功能是:从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。例如:输入:CADX2012JSJ0623输出:8#includevoid main() int n=0,c; c=getchar();/*SPACE*/ while(【?】) /*SPACE*/ if(【?】) n+; c=getchar(); printf(%d,n);9.题目:请输入一个大于100的正整数a,将a的百位、十位和个位依次放在b的个位、十位和百位上。例如:输入321,输出结果是:123。#include #include main () int a,b; printf (请输入一个大

有以下程序: include main() {char c1='1',c2='2'; c1=getchar();c2

有以下程序: #include <stdio.h> main() {char c1='1',c2='2'; c1=getchar();c2=getchar();putchar(c1);putchar(c2); } 当运行时输入a<回车>后,以下叙述正确的是 ______。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值


正确答案:A
解析:函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受一个字符(回车符也算是一个字符)。故本题中变量c1被赋予字符a,c2被赋予回车符。


有以下程序 void fun(char *a,char *b) { a=b; ( *a)++; } main() {char cl='A',c2='a',*p1,*p2; p1=&c1;p2:&c2; fun(p1,p2); printf("%c%c\n",c1,c2); } 程序运行后的输出结果是

A.Ab

B.aa

C.Aa

D.Bb


正确答案:A
解析:指针作为函数参数的运用,经过分析得知fun()函数的功能:将形参 a指向形参b所指的存储空间,然后使形参a指向变量的值加1。在主函数中定义了字符型指针变量p1和p2,并让它们分别指向“c1和c2。然后将p1、p2作为实参传递给形参a、 b。在fun()函数中,首先让指针变量p1指向P2,然后P1指向的存储空间的值加1,即让变量c2加1为“b”,而c1的值没有被改变,仍然是“A”。


有以下程序: void fun(char *a, char*b) { a=b;(*a)++;) main() { char c1='A',c2='a', *p1, *p2; p1=&c1; p2=&c2; fun(p1,p2); printf("%c%c\n", c1,c2); } 程序运行后的输出结果是 ______。

A.Ab

B.aa

C.Aa

D.Bb


正确答案:A
解析:本题中函数fun的形参是指针变量,因此实参与形参之间是地址传递,即形参的改变可以影响实参。main函数中p1指向c1,p2指向c2,函数调用语句fun(p1,p2)的功能是将p2所指存储单元的内容的值加1,即将c2的值加1得c2='b',故printf函数的输出结果为Ab。


有以下程序 include main() {char c1,c2;scanf("%c",*c1);while(c1<65||c1>90)scanf("%

有以下程序

include<stdio.h>

main()

{ char c1,c2;

scanf("%c",*c1);

while(c1<65||c1>90) scanf("%c",&c1);

c2=c1+32;

printf("%c,%c\n",c1,c2);

}

程序运行输入6回车后,自否输出结果、结束运行(请回答能或不能)【 】。


正确答案:不能
不能 解析:本题原意想把大与英文字母转换成小写字母,但由于输入数据时不正确致使循环无限制地进行下去,应该输入大写英文字母,因此,本题无输出结果,不能结束运行。


有下列程序:includemain(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2

有下列程序: #include<stdio.h> main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar();c6=getchar(); putchar(c1);putchar(c2); printf("%c%c\n",c5,c6); } 程序运行后,若从键盘输入(从第1列开始): 123<CR> 45678<CR> 则输出结果是(

A.1267

B.1256

C.1278

D.1245


正确答案:D
解析: 当用scanf函数从键盘输入数据时,每行数据的末尾按下回车键(Enter键)之前,可以任意修改。但按下回车键putchar(c1) (Enter键)之后,scanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入123CR>时,变量c1、c2、c3的值分别为1、2、3,当输入45678CR>时,变量c5、c6的值4和5。所以用输出函数putchar(c1)输出1,putchar(c2)输出2,printf("%c%c\n",c5,c6)输出45。所以选项D)为正确答案。

更多 “技能培训专题:系统测试题1” 相关考题
考题 有以下程序:void fun (char *a,char *b){a=b;(*a)++;}main(){char cl='A',c2='a',*p1,*p2;p1=&am有以下程序: void fun (char *a,char *b) { a=b;(*a)++;} main() { char cl='A',c2='a',*p1,*p2; p1=&c1;p2=&c2;fun (p1,p2); printf("%c,%c\n",c1,c2); } 程序运行后的输出结果是( )。A.AbB.aaC.AaD.Bb正确答案:A解析:经过分析得知fun()函数的功能:将形参a指向形参b所指的存储空间,然后使形参a指向变量的值加1。在主函数中定义了字符型指针变量p1和p2,并让它们分别指向c1和c2。将p1、p2作为实参传递给形参a、b。在fun()函数中,首先让指针变量p1指向p2,然后p1指向的存储空间的值加1,即让变量c2加1为b,而c1的值没有被改变,仍然是A。所以,4个选项中选项A符合题意。

考题 有以下程序:includemain(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2有以下程序: #include<stdio.h> main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar();c6=getchar(); putchar(c1);putchar(c2); printf("%c%c\n",c5,c6); } 程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车> 则输出结果是____A.1267B.1256C.1278D.1245正确答案:D解析: 格式输入函数一般形式为:scanf(格式控制,地址表列),该函数段执行scanf函数后c1='1'、c2='2'、c3='3'、c4='\n',getchar为字符输入函数,函数的值就是从输入设备得到的字符。

考题 有以下程序includemain(){char c1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,有以下程序 #include<stdio.h> main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar();c6=getchar(); putchar(c1);putchar(c2); printf("%c%c\n",c5,c6); } 程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车> 则输出结果是A.1267B.1256C.1278D.1245正确答案:D解析: putchar(c1)输出1,putchar(c2)输出 2,pfintf("%c%c\n",c5,c6)输出45。

考题 下列程序的输出结果是( )。 public class c3 { public static void main(String args[]) { char c1='B',c2='C'; if(c1+1<c2) ++C1; System.out.println(c1); } }A.BB.bC.CD.c正确答案:C解析:在程序中,c1和c2均为char类型的变量,判断条件c1+1c2,执行过程中在Unicode字符集中找到字符'B'的下一个字符,即'C',再将字符'C'和字符'C'的索引值进行比较,在Unicode字符集中,'C'的索引值小于'c'的索引值,因此条件表达式为true,执行语句“++cl;”,因此c1的值变为'C'。

考题 下列程序的输出结果是( )。 public class c3 { public static void main(String args[]) { char c1='B'/c2='c'; if(c1+1<c2) ++c1; System.out.println(c1); } }A.BB.bC.CD.c正确答案:C解析:在程序中,c1和c2均为char类型的变量,判断条件c1+1c2,执行过程中在Unicode字符集中找到字符'B'的下一个字符,即'C'再将字符'C'和字符'c'的索引值进行比较,在Unieode字符集中,'C'的索引值小于'c'的索引值,因此条件表达式为true,执行语句“++c1;”因此c1的值变为'C'。

考题 (8)有以下程序(说明:字符0的ASCII码值为48)#include <stdio.h>main(){ char c1,c2;scanf("%d",&c1);c2=c1+9;printf("%c%c\n",c1,c2);}若程序运行时从键盘输入48<回车>,则输出结果为 【8】 。正确答案:(8)09

考题 有以下程序 include main() {char c1,c2,c3,c4,c5,c6; s有以下程序 #include <stdio.h> main() {char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); } 程序运行后,若从键盘输入 (从第1列开始) 123 <回车> 45678 <回车> 则输山结果是______。A.1267B.1256C.1278D.1245正确答案:D解析:此题考核的是字符输入输出函数的应用,getchar()函数只能接收一个字符,即使输入多个字符后再按回车还是只能将第—个字符读入。scanf()和printf()是按格式输入输出的函数,当输入123回车>,scanf()分别读入字符“1”、“2”、“3”、“回车>”;接下来输入45678回车>,则getchar()读入字符“4”赋值给c5,字符“5”赋值给c6,所以输出语句输出结果为1245。

考题 已知大写字母A的ACSⅡ码为65,以下程序的运行结果是() includemain(){char c1='A',c2='Y已知大写字母A的ACSⅡ码为65,以下程序的运行结果是 ( ) # include<stdio.h> main( ) {char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); }A.65,89B.A,YC.65,88D.65,90正确答案:A

考题 已知大写字母F的ASCII码为70,以下程序的运行结果为()includemain( ){char c1='F',c2='已知大写字母F的ASCII码为70,以下程序的运行结果为 ( ) #include<stdio.h> main( ) { char c1='F',c2='p'; printf("%d,%d\n",c1,c2); }A.70,80B.70,81C.70,82D.70,83正确答案:A

考题 下面程序的输出结果是()。includeusing namespace std;void main(){char cl='a',c2='c下面程序的输出结果是( )。 #include<iostream> using namespace std; void main() { char cl='a',c2='c'; cout.put('a').put('c').put('\n'); cout.put(c1).put(c2); }A.ac a cB.ac acC.a c ac cD.a c正确答案:B解析:分析该题,输出字符“a”,“c”和换行,然后再输出“a”,“c”。